首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PyQT5菜单和工具栏

PyQT5菜单和工具栏

作者头像
TomatoCool
发布2023-07-30 17:38:01
发布2023-07-30 17:38:01
48300
举报
文章被收录于专栏:TomatoCoolTomatoCool
运行总次数:0

#无特殊注明,所有案例只修改第一个案例的对应部分 主窗口: QMainWindow提供了主窗口的功能,使用它能创建一些简单的状态栏、工具栏和菜单栏。

状态栏:

代码语言:javascript
代码运行次数:0
运行
复制
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *


#  继承QMainWindow,状态栏是由QMainWindow创建的
class Example(QMainWindow):

    #  继承父类构造
    def __init__(self):
        super().__init__()

        #  使用initUI()方法创建一个GUI
        self.initUI()

    #  初始化组件
    def initUI(self):
        #  创建状态栏,showMessage()方法在状态栏上显示一条信息
        self.statusBar().showMessage('Ready')

        #  不注释了
        self.setGeometry(300, 300, 300, 250)
        self.setWindowTitle('Statusbar')
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    #  进入应用的主循环中,调用exit()方法或直接销毁主控件时,主循环就会结束
    sys.exit(app.exec_())

菜单栏:

代码语言:javascript
代码运行次数:0
运行
复制
#  初始化组件
def initUI(self):
    #  QAction是菜单栏、工具栏或者快捷键的动作的组合
    #  添加图标,文字描述
    exitAct = QAction(QIcon('cat.jpg'), '&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, 300, 250)
    self.setWindowTitle('Simple menu')
    self.show()

子菜单:

代码语言:javascript
代码运行次数:0
运行
复制
#  初始化组件
def initUI(self):
    #  创建菜单栏
    menubar = self.menuBar()
    #  添加一个菜单
    fileMenu = menubar.addMenu('File')

    #  创建一个动作
    newAct = QAction('New', self)
    
    #  使用QMenu创建一个新菜单
    impMenu = QMenu('Import', self)
    #  创建一个动作,添加到新菜单
    impAct = QAction('Import mail', self)
    impMenu.addAction(impAct)
    
    #  将动作和新菜单,添加到主菜单
    fileMenu.addAction(newAct)
    fileMenu.addMenu(impMenu)
    
    #  不注释了
    self.setGeometry(300, 300, 300, 250)
    self.setWindowTitle('Submenu')
    self.show()

勾选菜单:

代码语言:javascript
代码运行次数:0
运行
复制
#  初始化组件
def initUI(self):
    #  创建一个状态栏
    self.statusbar = self.statusBar()
    self.statusbar.showMessage('Ready')

    #  创建一个菜单栏,添加一个菜单
    menubar = self.menuBar()
    viewMenu = menubar.addMenu('View')

    #  创建一个动作,用checkable选项创建一个能选中的菜单
    viewStatAct = QAction('View statusbar', self, checkable=True)
    #  添加状态栏动作,鼠标悬停时显示状态
    viewStatAct.setStatusTip('View statusbar')
    #  设置默认为选中状态
    viewStatAct.setChecked(True)
    #  将动作与函数绑定
    viewStatAct.triggered.connect(self.toggleMenu)
    #  将动作添加到菜单
    viewMenu.addAction(viewStatAct)

    #  不注释了
    self.setGeometry(300, 300, 300, 250)
    self.setWindowTitle('Check menu')
    self.show()

右键菜单:

代码语言:javascript
代码运行次数:0
运行
复制
#  初始化组件
def initUI(self):
    #  不注释了
    self.setGeometry(300, 300, 300, 250)
    self.setWindowTitle('Context menu')
    self.show()

def contextMenuEvent(self, event):
    #  创建一个菜单
    cmenu = QMenu(self)
    #  添加三个动作
    newAct = cmenu.addAction("New")
    opnAct = cmenu.addAction("Open")
    quitAct = cmenu.addAction("Quit")
    #  使用exec_()方法显示菜单,从鼠标右键事件对象中获得当前坐标
    #  mapToGlobal()方法把当前组件的相对坐标转换为窗口(window)的绝对坐标
    action = cmenu.exec_(self.mapToGlobal(event.pos()))
    #  绑定关闭事件
    if action == quitAct:
        qApp.quit()

工具栏:

代码语言:javascript
代码运行次数:0
运行
复制
#  初始化组件
def initUI(self):
    #  创建一个动作
    exitAct = QAction(QIcon('cat.jpg'), '&Exit', self)
    #  设置快捷键
    exitAct.setShortcut('Ctrl+Q')
    #  将动作与关闭事件绑定
    exitAct.triggered.connect(qApp.quit)

    #  用addToolBar()创建工具栏
    self.toolbar = self.addToolBar('Exit')
    #  并用addAction()将动作对象添加到工具栏
    self.toolbar.addAction(exitAct)

    #  不注释了
    self.setGeometry(300, 300, 300, 250)
    self.setWindowTitle('Toolbar')
    self.show()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023 年 04 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 状态栏:
  • 菜单栏:
  • 子菜单:
  • 勾选菜单:
  • 右键菜单:
  • 工具栏:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档