【pyqt5学习】——菜单栏(QMenu())、工具栏QToolBar学习

目录

1、菜单栏(QMenu())——一般在窗口顶部

1)创建菜单栏步骤

2)信号与方法

3)实操

 2、工具栏——一般在菜单栏下方

1)创建步骤

2)方法与信号

信号:

方法:

 3)实操示例

3、状态栏QStateBar——用于显示状态信息,一般在窗口底部

1)使用步骤

2)以菜单栏点击动作触发状态栏为例

 ​编辑


1、菜单栏(QMenu())——一般在窗口顶部

1)创建菜单栏步骤

菜单栏只有在窗口类型为QMainwindow才有,具体步骤为:

1)获取窗口菜单栏

2)给菜单栏添加条目

3)创建新的动作

4)将新的动作添加到对应的条目下

		# 获取菜单栏bar = self.menuBar()# 往菜单栏添加菜单项目file = bar.addMenu("文件")# 给菜单项目添加子菜单new = file.addAction("新建")save = file.addAction("保存")

2)信号与方法

信号:主要有菜单栏上的动作触发信号triggled()

方法:给动作添加快捷键(setShortcut("CTRL+S"))等。

3)实操

from PyQt5.QtWidgets import QMainWindow,QApplication
from PyQt5.QtCore import QDateTime,QDate,QTime
import sysclass QMenuDemo(QMainWindow):def __init__(self):super(QMenuDemo, self).__init__()# 获取菜单栏bar = self.menuBar()# 往菜单栏添加菜单项目file = bar.addMenu("文件")# 给菜单项目添加子菜单new = file.addAction("新建")save = file.addAction("保存")save.setShortcut("CTRL+S") # 设置快捷键save.triggered.connect(self.saveActionSlot)def saveActionSlot(self):print(self.sender().text())if __name__ == '__main__':app = QApplication(sys.argv)mainWin = QMenuDemo()mainWin.show()sys.exit(app.exec_())

 2、工具栏——一般在菜单栏下方

1)创建步骤

1)创建一个工具栏

2)为工具栏添加动作

		# 添加工具栏toolBar = self.addToolBar("File")# 创建新的动作,添加到工具栏new = QAction(QIcon('icon.jpg'),"new",self)save = QAction(QIcon("icon.jpg"),"save",self)toolBar.addAction(new)toolBar.addAction(save)

2)方法与信号

信号:

1)动作触发信号,和菜单栏一样action.triggered();

2)工具栏上有动作被触发信号toolBar.actionTriggered

方法:

1)给动作添加快捷键(setShortcut());

2)设置工具栏上的动作显示模式:

①只显示图标——toolBar.setToolButtonStyle(Qt.ToolButtonTextOnly)

②只显示文本——toolBar.setToolButtonStyle(Qt.ToolButtonTextOnly)

③图标文本都显示

文本显示在图标下面——toolBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

文本显示在图标旁边——toolBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

 

注:一个工具栏上所有的动作显示模式都是一样的,如果需要显示模式不一样,则可以通过创建多个工具栏,然后分别对不同工具栏设置不同的显示模式

 3)实操示例

from PyQt5.QtWidgets import QMainWindow,QApplication,QAction
from PyQt5.QtCore import QDateTime,QDate,QTime,Qt
from PyQt5.QtGui import QIcon
import sysclass QToolBarDemo(QMainWindow):def __init__(self):super(QToolBarDemo, self).__init__()# 添加工具栏toolBar = self.addToolBar("File")# 创建新的动作,添加到工具栏new = QAction(QIcon('icon.jpg'),"new",self)save = QAction(QIcon("icon.jpg"),"save",self)edit = QAction(QIcon("icon.jpg"),"edit",self)toolBar.addAction(new)toolBar.addAction(save)toolBar.addAction(edit)toolBar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)toolBar.actionTriggered.connect(self.showAction) # 工具栏上的动作被触发的信号,自动传回触发的动作对象self.setWindowTitle("工具栏演示")def showAction(self,a):print(a.text())if __name__ == '__main__':app = QApplication(sys.argv)mainWin = QToolBarDemo()mainWin.show()sys.exit(app.exec_())

3、状态栏QStateBar——用于显示状态信息,一般在窗口底部

1)使用步骤

1)先创建一个状态栏

self.statuBar = QStatusBar()

2)然后将状态栏设置到窗口

self.setStatusBar(self.statuBar)

3)将需要显示的信息显示在窗口

self.statuBar.showMessage(self.sender().text(), 5000)

2)以菜单栏点击动作触发状态栏为例

from PyQt5.QtWidgets import QMainWindow,QApplication,QStatusBar
from PyQt5.QtCore import QDateTime,QDate,QTime
import sysclass StatusBarDemo(QMainWindow):def __init__(self):super(StatusBarDemo, self).__init__()# 获取菜单栏bar = self.menuBar()# 往菜单栏添加菜单项目file = bar.addMenu("状态栏演示")# 给菜单项目添加子菜单new = file.addAction("显示状态栏")file.triggered.connect(self.showStatu) # 给菜单栏条目设置触发,会自动将触发的动作名称传给槽函数new.triggered.connect(self.showAction) # 给菜单栏动作设置触发,不会自动将触发的动作名称传给槽函数# 创建一个状态栏self.statuBar = QStatusBar()# 给窗口设置状态栏self.setStatusBar(self.statuBar)def showStatu(self,a):# 将消息显示在状态栏上5sself.statuBar.showMessage(a.text(),5000)def showAction(self):self.statuBar.showMessage(self.sender().text(), 5000)if __name__ == '__main__':app = QApplication(sys.argv)mainWin = StatusBarDemo()mainWin.show()sys.exit(app.exec_())

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java核心技术及面试指南 异常部分的面试题归纳以及答案

4.2.4.1 throw和throws有什么差别?异常(Exception)和错误(Error)有什么差别? throw语句表示抛出异常,由方法体内的语句处理。throws语句用在方法声明后面,表示如果抛出异常&#xff…

win7win10 配置wlan热点

win7 & win10 系统自带wlan功能,配置方法如下: 命令行输入: 1. netsh wlan set hostednetwork mode allow ssid "Haha" key12345678 2. netsh wlan start hostednetwork netsh wlan show hostednetwork 转载于:https://www.cnblogs.com/…

java---Socket编程出现的异常种类

.java.net.SocketTimeoutException.这个异常比较常见,socket超时。一般有2个地方会抛出这个,一个是connect的时候,这个超时参数由connect(SocketAddress endpoint,int timeout)中的后者来决定,还有就是setSoTimeout(int timeout)&…

【pyqt5学习】——利用Pyqt5连接打印机(QtPrintSupport、QPrintDialog、QPageSetupDialog)

目录 1、利用QtPrintSupport直接连接打印机——不常用 1)基本知识 2)完整代码案例 3)结果 2、 打印对话框QPrintDialog、打印设置对话框QPageSetupDialog 1)弹出打印设置对话框 2)弹出打印对话框 注&#xff1a…

Val编程-按键响应模式

由于Val是通过语句gotoxy函数来进行光标移动的,不支持触摸屏与鼠标,因此对于其界面编程有很大的局限。 一般有下面几种模式来进行编程。 1.按键响应模式(中断模式) 2.轮询模式 一般推荐使用按键响应模式。其原理是对于有按键按下…

[Android]SQLite的使用

Android 数据存储提供了四种存储方式: Shared Preferences 使用键值对(Map(key, value))来存储数据 Internal Storage 内部存储,存储在设备内存的 私人数据 External Storage 外部存储,存储在外部设备的 公共数据…

第一百四十五节,JavaScript,同步动画

JavaScript,同步动画 将上一节的,移动透明动画,修改成可以支持同步动画,也就是可以给这个动画方法多个动画任务,让它同时完成 原理: 向方法里添加一个属性,这个属性是一个对象,同步动…

Exchange Server 2016管理系列课件39.新建本地移动请求

场景通过新建本地移动请求,可以很方便的将用户邮箱从一个数据库迁移到另外一个数据库。1)跨平台邮件迁移;(低exchange迁移到高版本exchange)2)数据库平衡与优化;(企业当中&#xff0…

【数据库学习】——【汇总】MySQL数据库下载与安装(Msi文件安装和免安装版本)、Navicat下载与安装

目录 1、MySQL数据库下载与安装 1)MySQL数据库下载 MySQL官网 MySQL数据库下载 2)MySQL 通过msi文件安装 3)MySQL免安装版本使用 1)将免安装包移动到安装的文件夹位置; 2)新建data文件夹 3&#xff…

Val编程-文本操作

Val系统相对于高级语言来说,对于文本操作的功能相当的弱。 一般的文本(文件夹)操作有: 1.新建文本, 2.删除文本, 3.新建文件夹, 4.删除文件夹, 5.文本重命名, 6.文…

Linux高级编程--01.vi命令

VI是Linux/Unix下标配的一个纯字符界面的文本编辑器。由于不支持鼠标功能,也没有图形界面,相关的操作都要通过键盘指令来完成,需要记忆大量命令。因此很多人不大喜欢它,但同时由于键盘的方式往往比鼠标来得快,一旦熟练…

【数据库学习】——纠错:mysql Authentication plugin ‘caching_sha2_password‘ is not supported

目录 1、环境介绍 2、问题描述 3、原因分析 4、 解决方案 1)方法一:直接改成mysql_native_password验证方式 2)方案二: 利用sql命令将验证机制修改 ① 打开命令行窗口——cmd ② 登录mysql数据库 ③ 查看不同用户名的身份…

xcode中用pods管理第三方库转

安装pods :http://www.cnblogs.com/wangluochong/p/5567082.html 史上最详细的CocoaPods安装教程 --------------------------------------------- 第一步:Cmmand+空格,搜索"终端",使用cd命令进入到我们项目…

Val编程-界面编程

由于示教盒是一个黑白的分辨率为(14*40)的液晶屏,用户交互不是很好,界面不友好。而且没有鼠标导航与触摸屏。 界面编程函数 1.void cls() 2.void title(string sText) 3.void put(string sText), void put(num nValue) 4.void put…

【机器学习笔记四】分类算法 - 逻辑回归

参考资料 【1】 Spark MLlib 机器学习实践 【2】 统计学习方法 1、Logistic分布 设X是连续随机变量,X服从Logistic分布是指X具有下列分布函数和密度函数 ,。其中u为位置参数,γ为形状参数。如下图: 分布函数以(u,1/2)为中心…

FPFH+ICP点云配准

A, UniformSampling降噪B, ISS计算关键点, FPFH特征在FeatureCloud::setInputCloud中读入点云,并调用processInput进行处理:processInput处理包括: 1, computeSurfaceNormals () 使用NormalEstimation计算得到表面法向量2, computeLocalFeatures () FPFHEstimationKdTreeIS…

【python 学习】——pycharm终端解释器和Python解释器配置

目录 1、pycharm终端运行的时候前面带有PS,是什么意思,怎么变成cmd? 1)File——settings 2)tools——terminal——shellPath 2、pycharm怎么切换不同的Python解释器? 1)File——settings 2&#xff09…

在linux下实现mysql自动备份数据

使用的系统为CentOS,mysql版本为5.6 备份功能主要利用以下功能实现: mysql命令中的mysqldump命令 linux下脚本编写 linux下crontab定时任务的使用 首先确定你要存放脚本的目录和存放备份数据的目录 首先进行以下修改(因为在命令行或者脚本中写…

面向未来编程

我们一直以来都知道面向对象编程,面向过程编程。大多数时候还是面向工资编程,面向生活编程。面向任务编程,面向公司编程,面向领导编程。 工资不给力,心里认为委屈;生活有压力。影响工作情绪。任务完毕就好…

Plotclock

调试程序,运行调试程序,舵机会移动两只悬臂分别停留在一只水平另一只垂直的位置上。如果差距非常大,可拆下悬臂调节,如果比较接近了,就修改程序第3~6行的四个参数 SERVOFAKTORLEFT 左悬臂垂直位置,SERVOFAK…