import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':
app = QApplication(sys.argv)
w = QWidget()
w.resize(250, 150)
w.move(300, 300)
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec_())
首先是import,sys和PyQt5.QtWidgets
每個PyQt5應用都必須創建一個應用對象app:
app = QApplication(sys.argv)
QWidget空間是一個用戶界面的基本空間:
w = QWidget()
設置窗口位置、大小和標題:
w.resize(250, 150)
w.move(300, 300)
w.setWindowTitle('Simple')
展示窗口:
w.show()
確保主循環安全退出:
sys.exit(app.exec_())
窗口圖標程序:
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()###創建一個GUI
def initUI(self):
self.setGeometry(300, 300, 300, 220)###resize()和move()的合體,
###前兩個參數是位置,后兩個參數是大小。
self.setWindowTitle('Icon')###設置標題
self.setWindowIcon(QIcon('web.png')) ##載入圖片
self.show() ##展示窗口
if __name__ == '__main__':
app = QApplication(sys.argv)#創建app
ex = Example()#創建窗口
sys.exit(app.exec_())#退出程序
提示框:
import sys
from PyQt5.QtWidgets import (QWidget, QToolTip,
QPushButton, QApplication)
from PyQt5.QtGui import QFont
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()##創建GUI
def initUI(self):
QToolTip.setFont(QFont('SansSerif', 10))##創建提示框的字體
self.setToolTip('This is a <b>QWidget</b> widget')##設置提示框的內容
btn = QPushButton('Button', self)##創建一個按鈕
btn.setToolTip('This is a <b>QPushButton</b> widget')##按鈕提示框鏈接
btn.resize(btn.sizeHint())##設置按鈕大小,sizeHint()為默認大小
btn.move(50, 50) ##設置按鈕位置
self.setGeometry(300, 300, 300, 200)##設置窗口位置、大小
self.setWindowTitle('Tooltips') #設置窗口標題
self.show()#展示窗口
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
創建退出按鈕:
import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication
from PyQt5.QtCore import QCoreApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
qbtn = QPushButton('Quit', self)##創建一個按鈕
qbtn.clicked.connect(QCoreApplication.instance().quit)#按鈕鏈接行為;
##QCoreApplication.instance().quit為退出窗口
qbtn.resize(qbtn.sizeHint())
qbtn.move(50, 50)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Quit button')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
消息盒子:
import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Message box')
self.show()
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message',
"Are you sure to quit?", QMessageBox.Yes |
QMessageBox.No, QMessageBox.No)##消息盒子窗口
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
以上,總共學習了:創建窗口,為窗口添加按鈕,為窗口添加圖標,點擊按鈕退出窗口,加入提示框,創建消息彈窗。接下來,我們要自己整合一個小程序,做到:創建一個窗口,在窗口中創建一個退出按鈕,并為這個按鈕創建提示框;點擊按鈕時,彈出消息彈窗,并退出程序。我們命名為:FirstPyQtProgram
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon,QFont
from PyQt5.QtWidgets import QWidget, QToolTip, QPushButton, QMessageBox, QApplication
from PyQt5.QtCore import QCoreApplication
##繼承類
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
##創建窗口:
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('FirstPyQtProgram')
##添加icon圖標:
self.setWindowIcon(QIcon('web.png'))
##創建quit按鈕:
qb = QPushButton('Quit', self)##創建一個按鈕
qb.resize(qb.sizeHint())
qb.move(50, 50)
##鏈接quit行為:
qb.clicked.connect(QCoreApplication.instance().quit)
##創建按鈕提示框:
qb.setToolTip('This is a <b>QPushButton</b> widget')
self.show()
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message',
"Are you sure to quit?", QMessageBox.Yes |
QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())