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_())

 

posted @ 2020-03-22 16:32  墨色无墨  阅读(471)  评论(0编辑  收藏  举报