经过之前的学习,我们掌握了菜单栏、工具栏以及状态栏的添加方法,现在不妨试试把它们整合在一起,然后再加上一个中心窗口,一个完整的 App 初见端倪。本文由 Cescfangs 译自ZetCode pyqt5系列教程 并作适当修改。
先上源代码:
import sys
from PyQt5.QtWidgets import QMainWindow, QTextEdit, QApplication, qApp, QAction
from PyQt5.QtGui import QIcon
class exp(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
text = QTextEdit()
self.setCentralWidget(text)
exitAct = QAction(QIcon('heart256.ico'), 'Exit', self)
exitAct.setShortcut('Ctrl+Q')
exitAct.setStatusTip('Press and quit')
exitAct.triggered.connect(qApp.quit)
menuBar = self.menuBar()
fileMenu = menuBar.addMenu('&File')
fileMenu.addAction(exitAct)
self.statusBar()
tbar = self.addToolBar('Exit')
tbar.addAction(exitAct)
self.setGeometry(400, 200, 600, 400)
self.setWindowTitle('all together')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = exp()
sys.exit(app.exec_())
这个界面中的许多元素其实我们在之前的学习笔记中已经实现过了,通过上面的代码,我们成功地把桌面 GUI 界面常见的一些功能集合在了一起,有菜单栏、工具栏和状态栏。
text = QTextEdit()
self.setCentralWidget(text)
以上代码创建了一个文字编辑的窗口 QTextEdit()
,可以用来输入文字,再用setCentralWidget()
把这个编辑窗口放在QMainWindow
的中心,QTextEdit()
将会占据界面的所有剩余空间。
是不是注意到动图里没有 “File”?因为 Mac 的菜单栏统一集成在最上面,通过 PyQt 设置的菜单栏并不会集成在 Mac 的顶部菜单栏上所以看上去和 Windows 不一样。