一. 状态栏

# -*- 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添加一个动作。

四  . 勾选菜单,右键菜单

五 . 工具栏

六 . 主窗口

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

pyqt5 -——菜单和工具栏的更多相关文章

  1. pyqt5 菜单,工具栏,线程,matplotlib

    import sys from PyQt5.QtGui import QIcon from PyQt5.QtWidgets import QMainWindow, QMenuBar, QToolBar ...

  2. PyQt5教程——菜单和工具栏(3)

    PyQt5中的菜单和工具栏 在这部分的PyQt5教程中,我们将创建菜单和工具栏.菜单式位于菜单栏的一组命令操作.工具栏是应用窗体中由按钮和一些常规命令操作组成的组件. 主窗口 QMainWindow类 ...

  3. 在PyQt中构建 Python 菜单栏、菜单和工具栏

    摘要:菜单.工具栏和状态栏是大多数GUI 应用程序的常见且重要的图形组件.您可以使用它们为您的用户提供一种快速访问应用程序选项和功能的方法. 本文分享自华为云社区<Python 和 PyQt:创 ...

  4. WinForm 菜单和工具栏

    菜单和工具栏: 1.MenuStrip:顶部菜单 优先级最高,默认在最顶部 (1)分割线:a.打一个减号 “-”                   b.右键插入Separator (2)点击事件:每 ...

  5. WinForm菜单和工具栏

    菜单和工具栏: 1.MenuStrip - 顶部菜单栏分割线:1输入- 2.右键插入 |SpearTOR 快捷键设置:每一个项右键属性的最下面可以设置快捷键不管选项隐藏还是菜单隐藏,快捷键都管用 2. ...

  6. Windows系统:桌面,开始菜单和工具栏都不见了

    win7桌面,开始菜单和工具栏都不见了 ctrl+alt+del 打开任务管理器 然后文件-运行 ---  输入框里输入  explorer.exe 其实就是打开系统文件夹下的(大约是‘windows ...

  7. winform(多窗体、菜单和工具栏)

    一.多窗体 1.哪个是主窗体 利用From1的button将From2打开 private void button1_Click(object sender, EventArgs e) { Form2 ...

  8. WinFormd多窗体 菜单和工具栏:

    一.多窗体 1.哪个是主窗体 主窗体就是如果关掉这个窗体,程序就会退出的那个窗体1问题:主窗体隐藏了,关闭其它窗体后,没有将主窗体显示/关闭,那么程序就关不上了 办法:构造函数传值,将窗体传到另一个窗 ...

  9. WPF学习(二)布局与菜单、工具栏

    布局 //表格①Grid//3列 4行的表格   <Grid>    <Grid.ColumDefinitions>             <ColumnDefinti ...

随机推荐

  1. Nginx配置之负载均衡、限流、缓存、黑名单和灰度发布

    一.Nginx安装(基于CentOS 6.5) 1.yum命令安装 yum install nginx –y(若不能安装,执行命令yum install epel-release) 2. 启动.停止和 ...

  2. todos+增删改查+js练习

    增删改查+js练习+es6字符串模板@haloBabyBear <!DOCTYPE html> <html lang="en"> <head> ...

  3. 自己写的C#三层代码生成器

    思来想去用T4生成代码要学习它的语法,C#本身能很简单地生成txt文件,为啥不直接批量替换模板方式自己写个的三层代码生成器.说干就干,2个小时搞定.当然各层还可以做的更精细,比如DAL层的Add方法I ...

  4. day-06数据类型与深浅拷贝

    深浅拷贝 # 值拷贝:应用场景最多 ls = [1, 'abc', [10]] ls1 = ls # ls1直接将ls中存放的地址拿过来# ls内部的值发生任何变化,ls1都会随之变化 ls2 = l ...

  5. cellmap 基站查询 for android

    cellmap for android 3.6.8.8.1.8 更新日期:2019年4月28日 特别声明:本软件不能进行手机定位,不能对手机号码定位,谨防被骗. 安装说明:请卸载旧版本后,重新下载安装 ...

  6. Day 21 内存处理与正则

    一.python的垃圾回收机制 1.引用计数(垃圾回收机制的根本) 1.引用计数是用来记录值的内存地址被记录的次数的 2.每一次对值地址的引用都可以使该值的引用计数+1 3.每一次对值地址的释放都可以 ...

  7. springboot shiro 项目前端页面访问问题总结

    1.springboot前端页面默认需要放到指定的目录下才能访问 在/src/main/resource目录下的: /static /public /resources /META-INF/resou ...

  8. [蓝桥杯]PREV-23.历届试题_数字游戏

    问题描述 栋栋正在和同学们玩一个数字游戏. 游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈.栋栋首先说出数字1.接下来,坐在栋栋左手边的同学要说下一个数字2.再下面的一个同学要从上一个同学说的数 ...

  9. rocketMQ(二 )Centos7 集群

    rocketMQ集群: 在运用中流程一般 是在程序中使用代码编辑生产者,将所需要的消息发送到rocketmq中,然后另一个程序编辑消费者从rocketmq里面获取消息.rocketmq集群 需要对na ...

  10. 数学模块_math

    ceil 进一, 向上取整 floor 向下取整 pow(x, y) x的y次方 print(math.pow(2, 3)) # 8.0 sqrt(x) x的开平方(结果为浮点数) print(mat ...