PyQt 4学習ノート1基本フレームワーク
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
# (class)、 (data) (method)。
# Example , QtGui.QWidget 。
# : Example , QtGui.QWidget
# 。super() Example , 。
# __init__() Python 。
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
# GUI initUI() 。
self.initUI()
def initUI(self):
# , (tooltips) 。
QtGui.QToolTip.setFont(QtGui.QFont('SanSerif', 10))
# setToolTip() 。
self.setToolTip('This is a Qwidget widget')
# (button) , 。
# , 。
# QtGui.QWidget Example 。
btn = QtGui.QPushButton('Button', self)
btn.setToolTip('This is a QPushButton widget')
# , 。sizeHint()
# 。
btn.resize(btn.sizeHint())
btn.move(50, 50)
qbtn = QtGui.QPushButton('Quit', self)
# PyQt4 (signal & slot) 。 ,
# clicked 。 Qt Python( )。
# QtCore.QCoreApplication 。 。
# instance() 。 :QtCore.QCoreApplication
# QtGui.QApplication 。clicked quit() ,
# 。 : 。 , 。
qbtn.clicked.connect(QtCore.QCoreApplication.instance().quit)
qbtn.resize(qbtn.sizeHint())
qbtn.move(150, 50)
# QtGui.QWidget 。setGeometry() 。
# 。 x y 。
# , 。 , resize()
# move() 。
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Icon')
#
self.center()
# setWindowIcon() 。 QtGui.QIcon 。
# QtGui.QIcon() 。
self.setWindowIcon(QtGui.QIcon('web.png'))
self.show()
# QtGui.QWidget , QtGui.QCloseEvent 。
# , closeEvent() 。
def closeEvent(self, event):
# , , ‘Yes' 'No'。
# 。 。
# 。 。
reply = QtGui.QMessageBox.question(self, 'Message',
'Are you sure to quit?',
QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No,
QtGui.QMessageBox.No)
# , 'Yes', 。 , 。
if reply == QtGui.QMessageBox.Yes:
event.accept()
else:
event.ignore()
def center(self):
# , 。
qr = self.frameGeometry()
# QtGui.QDesttopWidget , 。
# , 。
cp = QtGui.QDesktopWidget().availableGeometry().center()
# , 。 。 。
qr.moveCenter(cp)
# qr , 。
self.move(qr.topLeft())
# 。 ! 。
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
原文住所:http://zetcode.com/gui/pyqt4/firstprograms/