菜单栏、状态栏与工具栏是人机交互的基本形式。一个好的交互界面一般都有部分的人机交互接口。QMainWindow类提供了一个应用主窗口。默认创建一个拥有状态栏、工具栏和菜单栏的经典应用窗口骨架。通过QMainWindow你可以添加自己的QToolBars、QDockWidgets、QMenuBar、QStatusBar等。
代码:
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
效果:
注意最右侧是工具栏。