菜单栏、状态栏与工具栏是人机交互的基本形式。一个好的交互界面一般都有部分的人机交互接口。QMainWindow类提供了一个应用主窗口。默认创建一个拥有状态栏、工具栏和菜单栏的经典应用窗口骨架。通过QMainWindow你可以添加自己的QToolBars、QDockWidgets、QMenuBar、QStatusBar等。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
import sys from PyQt5.QtWidgets import QMainWindow, QApplication, QMenuBar, QAction, qApp, QTextEdit from PyQt5.QtGui import QIcon from PyQt5.QtCore import QCoreApplication class Test(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): textEdit = QTextEdit() self.setCentralWidget(textEdit) # 创建一个Action exitAction = QAction(QIcon('exit.png'), 'Exit', self) exitAction.setShortcut('Ctrl+Q') exitAction.setStatusTip('退出程序') exitAction.triggered.connect(self.close) # 底部状态栏 self.statusBar().showMessage('状态栏') # 顶部菜单栏 menubar = self.menuBar() menubar.setNativeMenuBar(False) fileMenu = menubar.addMenu('File') fileMenu.addAction(exitAction) # 次顶部的工具栏 toolbar = self.addToolBar('Exit') toolbar.addAction(exitAction) self.setGeometry(300, 300, 400, 400) self.setWindowTitle('QMainWindow') self.show() pass if __name__ == '__main__': app = QApplication(sys.argv) example = Test() sys.exit(app.exec_()) pass |
效果:
注意最右侧是工具栏。