wxpython中的图形用户界面

wxpython中的图形用户界面,第1张

#!/user/bin/python

#-*-coding: UTF-8-*-

import wx

class SketchApp(wx.App):

    def OnInit(self):

        bmp = wx.Image("splash.png").ConvertToBitmap() 

        wx.SplashScreen(bmp, wx.SPLASH_CENTRE_ON_SCREEN | wx.SPLASH_TIMEOUT,1000, None, -1) 

        wx.Yield() 

        frame = SketchFrame(None)  

        frame.Show(True) 

        self.SetTopWindow(frame)

        return True

    

class SketchFrame(wx.Frame):

    def __init__(self, parent):

        wx.Frame.__init__(self, parent, -1, "Sketch Frame", size=(800,600))

        

       

if __name__ == '__main__':    

    app = SketchApp()    

    app.MainLoop()

两点:

1、你的代码中有用到SketchFrame,但是这不是wx里自带的类,可能是你引用别人的代码没有引用全吧,我帮你在下面简单的加了一个SketchFrame类,就不会报错了,但这只是d出了一个没有内容的窗口。具体要根据你自己的需要自己定制。

2、确保你程序的目录下有名为“splash.png”的图片。

这样在python2.x上可以成功运行。

python打出代码后图形在上方,可以确认使用的GUI库、添加窗口布局代码和调整窗口属性。

1、确认使用的GUI库:Python支持多种GUI库,如Tkinter、PyQt、wxPython等,不同的库可能有不同的显示方式。因此,首先需要确认使用的GUI库,然后查找相应的文档或教程。

2、添加窗口布局代码:在使用Tkinter开发GUI程序时,可以使用布局管理器来控制窗口中各个组件的位置和大小。例如,可以使用pack()、grid()、place()等方法来设置组件的布局。如果没有正确设置布局,可能会导致图形界面显示在代码窗口上方。因此,可以尝试添加适当的布局代码来调整图形界面的位置和大小。

3、调整窗口属性:在使用PyQt或wxPython开发GUI程序时,可以通过设置窗口属性来调整图形界面的位置和大小。例如,可以使用setGeometry()方法来设置窗口的位置和大小,使用setWindowTitle()方法来设置窗口标题。如果没有正确设置窗口属性,可能会导致图形界面显示在代码窗口上方。因此,可以尝试调整窗口属性来解决问题。

在《wxpython in action》里找了个例子:

import wx

class ScrollbarFrame(wx.Frame):

def __init__(self):

wx.Frame.__init__(self, None, -1, 'Scrollbar Example',

size=(400, 300))

self.scroll = wx.ScrolledWindow(self, -1)

self.scroll.SetScrollbars(1, 1, 600, 400)

img1 = wx.Image(1.gif, wx.BITMAP_TYPE_ANY)

self. *** 1 = wx.StaticBitmap(self.scroll,2, wx.BitmapFromImage(img1),pos=(40, 100))

self.button = wx.Button(self.scroll, -1, Scroll Me, pos=(50, 20))

self.Bind(wx.EVT_BUTTON, self.OnClickTop, self.button)

self.button2 = wx.Button(self.scroll, -1, Scroll Back, pos=(500, 350))

self.Bind(wx.EVT_BUTTON, self.OnClickBottom, self.button2)

def OnClickTop(self, event):

self.scroll.Scroll(600, 400)

def OnClickBottom(self, event):

self.scroll.Scroll(1, 1)

if __name__ == '__main__':

app = wx.PySimpleApp()

frame = ScrollbarFrame()

frame.Show()

app.MainLoop()

这是为整个Frame添加滚动条的例子, 给pannel加的话貌似没效果.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11221543.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存