PyQt5-菜单栏工具栏状态栏的使用(QMenuBar、QToolBar、QStatusBar)

PyQt5-菜单栏工具栏状态栏的使用(QMenuBar、QToolBar、QStatusBar)

转自:PyQt5-菜单栏工具栏状态栏的使用(QMenuBar、QToolBar、QStatusBar) - ygzhaof_100 - 博客园
https://www.cnblogs.com/ygzhaof/p/10070523.html

 

一、QMenuBar

窗体标题下方QMenuBar作为窗体菜单栏;QMenu对象提供了一个可以添加菜单栏的控件,也可以用于创建上下文菜单和弹出菜单选项;

每个QMenu对象都可以包含一个或者多个QAction对象或者级联的QMenu对象;

createPopupMenu()方法用于弹出一个菜单;

menuBar()方法用于返回主窗口的QMenuBar对象;

addMenu()方法可以将菜单添加到菜单栏;

addAction() 方法可以在菜单中进行添加某些操作;

常用方法:

例如:

 

#QMenuBar/QMenu/QAction的使用(菜单栏)
from PyQt5.QtWidgets import   QMenuBar,QMenu,QAction,QLineEdit,QStyle,QFormLayout,   QVBoxLayout,QWidget,QApplication ,QHBoxLayout, QPushButton,QMainWindow,QGridLayout,QLabel
from PyQt5.QtCore import QDir
from PyQt5.QtGui import QIcon,QPixmap,QFont
from PyQt5.QtCore import  QDate

import sys

class WindowClass(QMainWindow):

    def __init__(self,parent=None):

        super(WindowClass, self).__init__(parent)
        self.layout=QHBoxLayout()
        self.menubar=self.menuBar()#获取窗体的菜单栏

        self.file=self.menubar.addMenu("系统菜单")
        self.file.addAction("New File")

        self.save=QAction("Save",self)
        self.save.setShortcut("Ctrl+S")#设置快捷键
        self.file.addAction(self.save)

        self.edit=self.file.addMenu("Edit")
        self.edit.addAction("copy")#Edit下这是copy子项
        self.edit.addAction("paste")#Edit下设置paste子项

        self.quit=QAction("Quit",self)#注意如果改为:self.file.addMenu("Quit") 则表示该菜单下必须柚子菜单项;会有>箭头
        self.file.addAction(self.quit)
        self.file.triggered[QAction].connect(self.processtrigger)
        self.setLayout(self.layout)
        self.setWindowTitle("Menu Demo")

    def processtrigger(self,qaction):
        print(qaction.text()+" is triggered!")

if __name__=="__main__":
    app=QApplication(sys.argv)
    win=WindowClass()
    win.show()
    sys.exit(app.exec_())

 

 

二、QToolBar工具栏

该控件是由文本按钮、图标或者其他小控件按钮组成的可移动面板,通常位于菜单栏下方,作为工具栏使用;

每次单击工具栏中的按钮,此时都会触发actionTriggered信号。这个信号将关联QAction对象的引用发送到链接的槽函数上;

常用方法如下:

例如:结合上面menubar:

#QToolBar(工具栏)
from PyQt5.QtWidgets import QToolBar,   QMenuBar,QMenu,QAction,QLineEdit,QStyle,QFormLayout,   QVBoxLayout,QWidget,QApplication ,QHBoxLayout, QPushButton,QMainWindow,QGridLayout,QLabel
from PyQt5.QtGui import QIcon,QPixmap


import sys

class WindowClass(QMainWindow):

    def __init__(self,parent=None):
        super(WindowClass, self).__init__(parent)
        self.layout=QVBoxLayout()
        self.resize(200,300)
        #菜单栏
        menuBar=self.menuBar()
        menu=menuBar.addMenu("File")
        action=QAction(QIcon("./image/save.ico"),"New Project", self)
        menu.addAction(action)

        menu2=menu.addMenu("Add to ...")
        menu2.addAction(QAction("workspace edit...",self))


        #工具栏
        tool=self.addToolBar("File")
        #edit=QAction(QIcon("./image/save.ico"),"刷新",self)
        edit=QAction(QIcon("./image/save.ico"),"save",self)
        tool.addAction(edit)
        #tool.setOrientation(Qt.Horizontal) # 默认横向
        #tool.setOrientation(Qt.Vertical) # 纵向摆放
        #tool.setFixedWidth(64) #设定宽度
        #tool.setFixedHeight(64) #设定高度

        wifi=QAction(QIcon(QPixmap("./image/wifi.png")),"wifi",self)
        tool.addAction(wifi)
        tool.actionTriggered[QAction].connect(self.toolBtnPressed)

    def toolBtnPressed(self,qaction):
        print("pressed too btn is",qaction.text())
if __name__=="__main__":
    app=QApplication(sys.argv)
    win=WindowClass()
    win.show()
    sys.exit(app.exec_())

 

 

 

三、状态栏:QStatusBar

通过主窗口QMainWindow的setStatusBar()函数设置状态栏信息;

例如:

self.statusBar=QstatusBar()

self.setStatusBar(self.statusBar)

常用方法:

例如:修改上面实例,添加如下程序,这是状态栏信息;(点击工具栏按钮触发槽函数执行,完成对状态栏信息修改)


目录

PyQt5-菜单栏工具栏状态栏的使用(QMenuBar、QToolBar、QStatusBar)

一、QMenuBar

二、QToolBar工具栏

三、状态栏:QStatusBar


PyQt6是一个用于Python的跨平台GUI应用程序开发框架,它结合了Qt库的强大功能与Python的简洁易用性。在PyQt6中,你可以创建丰富的用户界面,包括菜单栏工具栏状态栏。 1. **菜单栏(Menubar)**: 菜单栏通常位于窗口顶部,包含了应用的主要功能选项,如文件、编辑、查看等。在PyQt6中,可以使用`QMenuBar`类来创建和管理菜单,通过`addMenu()`添加子菜单,然后使用`addAction()`为菜单项关联相应的函数或槽(slot)。 ```python menu_bar = QApplication.menuBar() file_menu = menu_bar.addMenu('文件') open_action = QAction('打开', self) save_action = QAction('保存', self) file_menu.addAction(open_action) file_menu.addAction(save_action) ``` 2. **工具栏(Toolbar)**: 工具栏一般包含一组操作频繁的按钮或图标,方便用户快速访问。`QToolBar`类可以用来创建工具栏。同样地,你可以通过`addAction()`添加工具栏动作,并设置其显示文本和图标。 ```python toolbar = QToolBar('常用操作') open_button = QAction(QIcon('open_icon.png'), '打开', self) toolbar.addAction(open_button) self.addToolBar(toolbar) ``` 3. **状态栏(Status Bar)**: 状态栏通常位于窗口底部,用于显示程序的状态信息,如当前的工作进度或错误提示。使用`QStatusBar`创建状态栏,然后添加`QLabel`或其他小部件显示信息。 ```python status_bar = self.statusBar() status_label = QLabel('欢迎使用', self) status_bar.addWidget(status_label) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值