wxPython和PyQt的Hello World用法的区别

关键字: wxpython pyqt
wxPython和PyQt分别是wxWidgets和Qt的python绑定,wxWidgets和Qt都是跨平台的GUI库,不过前者是开源免费的,而后者是基于商业License
让我们分别看看wxPython和PyQt的Hello World程序

wxPython
首先去http://www.python.org下载Windows下的python2.5,然后去http://www.wxpython.org下载相应的Windows安装包
装好后写个hellowx.py看看效果EL7457CLZIR2110PBF:
Java代码 复制代码 收藏代码
  1. import wx   
  2.   
  3. class MyFrame(wx.Frame):   
  4.     def __init__(self, parent, title):   
  5.   
  6.         wx.Frame.__init__(self, parent, -1, title, pos=(150150), size=(350200))   
  7.   
  8.         menuBar = wx.MenuBar()   
  9.         self.SetMenuBar(menuBar)   
  10.         menu = wx.Menu()   
  11.         menu.Append(wx.ID_EXIT, "E&xit""Exit this application")   
  12.         self.Bind(wx.EVT_MENU, self.OnTimeToClose, id=wx.ID_EXIT)   
  13.         menuBar.Append(menu, "&File")   
  14.   
  15.         panel = wx.Panel(self)   
  16.         text = wx.StaticText(panel, -1"Hello wxPython!")   
  17.         text.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD))   
  18.         text.SetSize(text.GetBestSize())   
  19.         panel.Layout()   
  20.   
  21.     def OnTimeToClose(self, evt):   
  22.         self.Close()   
  23.   
  24. class MyApp(wx.App):   
  25.     def OnInit(self):   
  26.         frame = MyFrame(None, "Hello wxPython!")   
  27.         self.SetTopWindow(frame)   
  28.         frame.Show(True)   
  29.         return True   
  30.            
  31. app = MyApp()   
  32. app.MainLoop()  

App->Frame->MenuBar/Panel,结构很清晰

PyQt
http://www.quadgames.com/download/pythonqt/下载Windows的PyQtDS3232SN安装包,PyQtGPL10.exe目前只支持到Python2.4
然后写个helloqt.py看看效果:
Java代码 复制代码 收藏代码
  1. import sys   
  2. from qt import *   
  3.   
  4. class HelloButton(QPushButton):   
  5.     def __init__(self, *args):   
  6.         QPushButton.__init__(self, *args)   
  7.         self.setText("Hello World")   
  8.   
  9. class HelloWindow(QMainWindow):   
  10.     def __init__(self, *args):   
  11.         QMainWindow.__init__(self, *args)   
  12.         self.button = HelloButton(self)   
  13.         self.setCentralWidget(self.button)   
  14.   
  15. def main(args):   
  16.     app = QApplication(args)   
  17.     win = HelloWindow()   
  18.     win.show()   
  19.     app.connect(app, SIGNAL("lastWindowClosed()"),   
  20.     app, SLOT("quit()"))   
  21.     app.exec_loop()   
  22.   
  23. if __name__ == "__main__":   
  24.     main(sys.argv)  

也是App->Window->MenuBar的模式,同wx没多大区别

posted @ 2011-05-21 14:36  ph580  阅读(2461)  评论(0编辑  收藏  举报