zoukankan      html  css  js  c++  java
  • pyqt5 -——菜单和工具栏

    一. 状态栏

    # -*- coding: utf-8 -*-
    # @Time : 2018/12/22 12:37
    # @Author : Bo
    # @Email : mat_wu@163.com
    # @File : demo3.py
    # @Software: PyCharm
    import sys
    from PyQt5.QtWidgets import QMainWindow, QApplication


    class Example(QMainWindow):

    def __init__(self):
    super().__init__()

    self.initUI()


    def initUI(self):

    self.statusBar().showMessage('Ready')

    self.setGeometry(300, 300, 250, 150)
    self.setWindowTitle('Statusbar')
    self.show()


    if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

    状态栏是由QMainWindow创建的。

    self.statusBar().showMessage('Ready')
    

    调用QtGui.QMainWindow类的statusBar()方法,创建状态栏。第一次调用创建一个状态栏,返回一个状态栏对象。showMessage()方法在状态栏上显示一条信息。

    二  菜单栏

    import sys
    from PyQt5.QtWidgets import QAction,qApp,QApplication,QMainWindow
    from PyQt5.QtGui import QIcon

    class Example(QMainWindow):

    def __init__(self):
    super().__init__()

    self.initUI()


    def initUI(self):

    exitAct = QAction(QIcon('1.png'),'&Exit',self)
    exitAct.setShortcut('Ctrl+Q')
    exitAct.setStatusTip('Exit Application')
    exitAct.triggered.connect(qApp.quit)

    self.statusBar()

    menubar = self.menuBar()
    fileMenu = menubar.addMenu("&File")
    fileMenu.addAction(exitAct)

    self.setGeometry(300, 300, 250, 150)
    self.setWindowTitle('simple menu')
    self.show()


    if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

    我们创建了只有一个命令的菜单栏,这个命令就是终止应用。同时也创建了一个状态栏。而且还能使用快捷键Ctrl+Q退出应用。

    exitAct = QAction(QIcon('exit.png'), '&Exit', self)        
    exitAct.setShortcut('Ctrl+Q')
    exitAct.setStatusTip('Exit application')
    

    QAction是菜单栏、工具栏或者快捷键的动作的组合。前面两行,我们创建了一个图标、一个exit的标签和一个快捷键组合,都执行了一个动作。第三行,创建了一个状态栏,当鼠标悬停在菜单栏的时候,能显示当前状态。

    exitAct.triggered.connect(qApp.quit)
    

    当执行这个指定的动作时,就触发了一个事件。这个事件跟QApplication的quit()行为相关联,所以这个动作就能终止这个应用。

    menubar = self.menuBar()
    fileMenu = menubar.addMenu('&File')
    fileMenu.addAction(exitAct)
    

    menuBar()创建菜单栏。这里创建了一个菜单栏,并在上面添加了一个file菜单,并关联了点击退出应用的事件。

    三 .子菜单

    import sys
    from PyQt5.QtWidgets import QAction, qApp, QApplication, QMainWindow, QMenu
    from PyQt5.QtGui import QIcon

    class Example(QMainWindow):

    def __init__(self):
    super().__init__()

    self.initUI()


    def initUI(self):


    exitAct = QAction(QIcon('1.png'),'&Exit',self)
    exitAct.setShortcut('Ctrl+Q') #快捷键
    exitAct.setStatusTip('Exit Application')
    exitAct.triggered.connect(qApp.quit)

    impMenu = QMenu("Import",self)
    impAct = QAction("Import mail",self)
    impMenu.addAction(impAct)

    self.statusBar()

    menubar = self.menuBar()
    fileMenu = menubar.addMenu("&File")
    fileMenu.addAction(exitAct)

    newAct = QAction("new",self)
    fileMenu.addAction(newAct)
    fileMenu.addMenu(impMenu)

    self.setGeometry(300, 300, 250, 150)
    self.setWindowTitle('simple menu')
    self.show()


    if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

    这个例子里,有两个子菜单,一个在file菜单下面,一个在file的import下面。

    impMenu = QMenu('Import', self)
    

    使用QMenu创建一个新菜单。

    impAct = QAction('Import mail', self) 
    impMenu.addAction(impAct)
    

    使用addAction添加一个动作。

    submenu

    四  . 勾选菜单,右键菜单

    五 . 工具栏

    六 . 主窗口

    import sys
    from PyQt5.QtWidgets import QAction, qApp, QApplication, QMainWindow, QMenu, QTextEdit
    from PyQt5.QtGui import QIcon

    class Example(QMainWindow):

    def __init__(self):
    super().__init__()

    self.initUI()


    def initUI(self):

    textEdit = QTextEdit()
    self.setCentralWidget(textEdit)



    exitAct = QAction(QIcon('1.png'),'&Exit',self)
    exitAct.setShortcut('Ctrl+Q') #快捷键
    exitAct.setStatusTip('Exit Application')
    exitAct.triggered.connect(qApp.quit)

    impMenu = QMenu("Import",self)
    impAct = QAction("Import mail",self)
    impMenu.addAction(impAct)

    self.statusBar()

    menubar = self.menuBar()
    fileMenu = menubar.addMenu("&File")
    fileMenu.addAction(exitAct)

    newAct = QAction("new",self)
    fileMenu.addAction(newAct)
    fileMenu.addMenu(impMenu)

    toolbar = self.addToolBar('Exit')
    toolbar.addAction(exitAct)
    self.setGeometry(300, 300, 250, 150)
    self.setWindowTitle('simple menu')
    self.show()


    if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
  • 相关阅读:
    多线程编程(一)
    所谓费曼学习法
    Java 基本数据类型扩充
    好记性不如烂笔头
    Java_面试札记
    Stream替代for-编码五分钟-划水五小时
    为什么启动线程是start方法?
    Java面试札记
    Tree
    手写SpringMVC 框架
  • 原文地址:https://www.cnblogs.com/icat-510/p/10165963.html
Copyright © 2011-2022 走看看