pyqt5学习之菜单栏,工具栏,状态栏
import sys from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * class MenuDemo(QMainWindow): def __init__(self, parent=None): super(MenuDemo, self).__init__(parent) self.resize(300, 200) # 设置菜单栏 layout = QHBoxLayout() bar = self.menuBar() # 必须是QMainWindow才能设置菜单栏 file = bar.addMenu('File') # 在菜单栏中添加一个新的菜单对象 file.addAction('New') # 在菜单中添加一个行为 file.addAction('show') save = QAction('Save', self) save.setShortcut('Ctrl+S') # 设置快捷键 file.addAction(save) edit = file.addMenu('Edit') edit.addAction('copy') edit.addAction('paste') quit = QAction('Quit', self) file.addAction(quit) file.triggered[QAction].connect(self.prcesstrigger) # 接受行为对象 self.setWindowTitle('menu例子') # 设置工具栏 tb = self.addToolBar('Tool') # 设置工具栏 new = QAction(QIcon('dp.png'), 'new', self) tb.addAction(new) save = QAction(QIcon('dp.png'), 'save', self) tb.addAction(save) open = QAction('open', self) tb.addAction(open) tb.actionTriggered[QAction].connect(self.toolbtnpressed) # 设置状态栏 self.statusBar = QStatusBar() # 设置状态栏 self.setStatusBar(self.statusBar) self.setLayout(layout) def prcesstrigger(self,q): print(q.text()+'is trigered') if (q.text() == 'show'): self.statusBar.showMessage(q.text()+'菜单选项被点击了', 5000) def toolbtnpressed(self, a): print('pressed tool button is', a.text()) if __name__ == '__main__': app = QApplication(sys.argv) demo = MenuDemo() demo.show() sys.exit(app.exec_())