PyQt4 <1>
QWidget 窗口组件是PyQt4中所有用户界面对象的基类,我们使用 QWidget 默认的构造,没有父亲。没有父亲的窗口组件称为窗体。
1> widget = QtGui.QWidget() #面向过程
1 import sys 2 from PyQt4 import QtGui 3 4 app = QtGui.QApplication(sys.argv) 5 6 widget = QtGui.QWidget() 7 widget.resize(200, 400) 8 widget.setWindowTitle('simple') 9 widget.setWindowIcon(QtGui.QIcon('icons/farmer_72px.png')) 10 widget.show() 11 12 sys.exit(app.exec_())
2> class widget(QtGui.QWidget) #面向对象
1 import sys 2 from PyQt4 import QtGui 3 4 class Widget(QtGui.QWidget): 5 def __init__(self, parent=None): 6 QtGui.QWidget.__init__(self, parent) 7 self.setGeometry(300, 300, 250, 150) 8 self.setWindowTitle('Icon') 9 self.setWindowIcon(QtGui.QIcon('icons/farmer_72px.png')) 10 11 app = QtGui.QApplication(sys.argv) 12 widget = Widget() 13 widget.show() 14 sys.exit(app.exec_())
#点击按钮退出
1 Quit_btn = QtGui.QPushButton('Quit',self) 2 Quit_btn.setGeometry(10, 10, 64, 35) 3 self.connect(Quit_btn,QtCore.SIGNAL('clicked()'), QtGui.qApp, QtCore.SLOT('quit()'))
#重写关闭事件
1 def closeEvent(self, event): 2 reply = QtGui.QMessageBox.question(self, 'Message', 'Are you Sure to Quit?', 3 QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) 4 if reply == QtGui.QMessageBox.Yes: 5 event.accept() 6 else: 7 event.ignore()
1 self.center() 2 3 # 居中显示 4 def center(self): 5 screen = QtGui.QDesktopWidget().screenGeometry() 6 size_self = self.geometry() 7 self.move((screen.width()-size_self.width())/2, (screen.height()-size_self.height())/2)
完整代码
1 #coding:utf-8 2 import sys 3 from PyQt4 import QtGui, QtCore 4 5 class widGet(QtGui.QWidget): 6 def __init__(self, parent=None): 7 QtGui.QWidget.__init__(self, parent) 8 9 self.setGeometry(400, 300, 200, 150) 10 self.setWindowTitle('widGet') 11 self.setWindowIcon(QtGui.QIcon('icons/farmer_72px.png')) 12 self.setToolTip('widGet') 13 14 Quit_btn = QtGui.QPushButton('Quit',self) 15 Quit_btn.setGeometry(10, 10, 64, 35) 16 self.connect(Quit_btn, QtCore.SIGNAL('clicked()'), QtGui.qApp, QtCore.SLOT('quit()')) 17 18 self.center() 19 20 # 居中显示 21 def center(self): 22 screen = QtGui.QDesktopWidget().screenGeometry() 23 size_self = self.geometry() 24 self.move((screen.width()-size_self.width())/2, (screen.height()-size_self.height())/2) 25 26 #重写关闭事件 27 def closeEvent(self, event): 28 reply = QtGui.QMessageBox.question(self, 'Message', 'Are you Sure to Quit?', 29 QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) 30 if reply == QtGui.QMessageBox.Yes: 31 event.accept() 32 else: 33 event.ignore() 34 35 app = QtGui.QApplication(sys.argv) 36 widget = widGet() 37 widget.show() 38 sys.exit(app.exec_())
浙公网安备 33010602011771号