状态栏、菜单栏和工具栏[PyQt5(二)]

状态栏、菜单栏和工具栏

QMainWindow提供了主窗口的功能,使用它能创建一些简单的状态栏、工具栏和菜单栏。

01.状态栏

状态栏是包含文本输出窗格或“指示器”的控制条。输出窗格通常用作消息行和状态指示器。消息行示例包括命令帮助消息行,它简要解释了“MFC 应用程序向导”所创建的默认状态栏的最左边窗格中选定的菜单或工具栏命令。状态指示器示例包括 SCROLL LOCK 键、NUM LOCK 键和其他键。状态栏通常和框架窗口的底部对齐。状态栏一般在每个窗口、程序操作界面的最底端

import  sys
from PyQt5.QtWidgets import QMainWindow,QApplication

class Exampel(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.statusBar().showMessage('Ready')     # 状态栏展示Ready信息

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

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Exampel()
    sys.exit(app.exec_())

02.菜单栏

菜单栏是按照程序功能分组排列的按钮集合,在标题栏下的水平栏。菜单栏实际是一种树型结构,为软件的大多数功能提供功能入口。点击以后,即可显示出菜单项。
一般图形界面都会有菜单栏,实现多种功能且方便操作,用PyQt5创建菜单栏,用QMainWindow生成一个主界面对象,用主界面的menuBar方法增加菜单选项。

import sys
from PyQt5.QtWidgets import QMainWindow,QApplication
class Exampel(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()
        
    def initUI(self):
        menubar = self.menuBar()
        menubar.addMenu('&File')     # 增加菜单
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle(('Simple menu'))
        self.show()
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Exampel()
    sys.exit(app.exec_())

当然,也可增加子菜单并且执行一些功能,下面增加退出功能,代码如下:

import sys
from PyQt5.QtWidgets import QMainWindow,QAction,qApp,QApplication,QMenu   # QAction是菜单栏、工具栏或者快捷键的动作的组合
from PyQt5.QtGui import QIcon

class Exampel(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 实现退出功能
        exitAct = QAction(QIcon('exit.png'),'&Exit',self)   # 增加一个功能
        exitAct.setShortcut('Ctrl+Q')           # 快捷键
        exitAct.setStatusTip('Exit application')    # 状态栏提示
        exitAct.triggered.connect(qApp.quit)        # 当执行这个指定的动作时,就触发了一个事件,实现界面退出,也可以用self.close,

        # 增加子菜单
        impMenu = QMenu('Import',self)
        impAct = QAction('Import mail',self)
        impMenu.addAction(impAct)

        self.statusBar()

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addMenu(impMenu)      # 将子菜单放入File菜单中
        fileMenu.addAction(exitAct)    # 将功能放到File菜单中

        self.setGeometry(300,300,300,200)
        self.setWindowTitle(('Simple menu'))
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Exampel()
    sys.exit(app.exec_())

03.工具栏

工具栏,顾名思义,就是在一个软件程序中,综合各种工具,让用户方便使用的一个区域。在PyQt5中,用QMainWindowaddToolBar实现增加一个工具栏按钮,代码如下:

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

class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()


    def initUI(self):
        exitAct = QAction(QIcon('exit.png'), 'Exit', self)
        exitAct.setShortcut('Ctrl+Q')
        exitAct.triggered.connect(qApp.quit)

        self.toolbar = self.addToolBar('Exit')
        self.toolbar.addAction(exitAct)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Toolbar')
        self.show()


if __name__ == '__main__':

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

后续持续更新……

你可能感兴趣的:(PyQt5)