QPushButton按钮

需要 from PyQt5.QtWidgets import QPushButton
继承 QObject-->QWidget-->QAbstractButton-->QPushButton 创建按钮控件:
QPushButton() 创建一个无父控件的按钮控件
QPushButton(parent) 创建控件的同时, 设置父控件
QPushButton(text, parent) 创建控件的同时, 设置提示文本和父控件
QPushButton(icon, text, parent) 创建控件的同时, 设置图标, 提示文本和父控件 菜单设置:
需要 from PyQt5.QtWidgets import QMenu
setMenu(QMenu) 设置菜单
menu() 获取菜单
showMenu() 展示菜单
from PyQt5.QtWidgets import QApplication, QWidget,QPushButton,QMenu,QAction
import sys
from PyQt5.QtGui import QIcon class win(QWidget):
def __init__(self):
super().__init__()
self.resize(300,300)
self.setWindowTitle('菜单')
self.num=0
self.btn=QPushButton('按钮1',self)
self.btn.move(100,50)
self.btn.setIcon(QIcon('大象.png')) menu=QMenu() #创建菜单
#action1=QAction(menu) #创建行为
#这个行为要有父对象self或menu,否则不显示
#action1.setText('新建') #行为显示的文本
#action1.setIcon(QIcon('新建.png')) #给行为添加图标
action1 = QAction(QIcon('新建.png'),'新建',menu) #创建行为
menu.addAction(action1) #给菜单添加行为
#每次只能添加一个行为
menu.addSeparator() #添加分割线
action2 = QAction(QIcon('打开.png'), '打开', menu)
menu.addAction(action2)
self.btn.setMenu(menu) #给按钮设置菜单
action1.triggered.connect(lambda :print('新建文件')) #点击行为时连接的槽函数
menu1=QMenu(menu) #创建子菜单
menu1.setTitle('最近打开') #给子菜单设置标题
menu.addMenu(menu1) #添加子菜单 if __name__=='__main__':
app=QApplication(sys.argv)
w=win()
w.show()
#w.btn.showMenu() #自动显示菜单
sys.exit(app.exec_())
信号:
QAbstractButton:
pressed() 鼠标按下信号
released() 鼠标释放
clicked() 控件内按下+控件内释放
toggled(bool checked) 切换信号(一般在单选框或者复选框中使用) QWidget:
windowTitleChanged(QString) 窗口标题改变信号
windowIconChanged(QIcon) 窗口图标改变信号
customContextMenuRequested(QPoint) 自定义上下文菜单请求信号 是否扁平: setFlat(bool) 是否扁平
默认值为False 设置了此属性,则除非按下按钮,否则大多数样式都不会绘制按钮背景 isFlat() 获取当前按钮边框是否扁平 默认处理: setAutoDefault(bool) 设置为自动默认按钮
在某些GUI样式中,默认按钮被绘制,其周围有一个额外的框架,最多3个像素或更多。Qt会自动在自动默认按钮周围保留此空间,即自动默认按钮可能会有稍大的提示
对于具有QDialog父级的按钮,此属性的默认值为true ; 否则默认为false。 setDefault(bool) 设置是否默认按钮
autoDefault() 返回是否自动默认
isDefault() 是否默认按钮 右键菜单: 方法一:重写控件方法 contextMenuEvent()
from PyQt5.QtWidgets import QApplication, QWidget,QPushButton,QMenu,QAction
import sys class win(QWidget):
def contextMenuEvent(self, evt) : #在控件内右击事件
menu=QMenu(self)
action1 = QAction(menu) # 创建行为
action1.setText('右击菜单')
action2 = QAction(menu) # 创建行为
action2.setText('右击菜单1')
menu.addAction(action1) # 给菜单添加行为
menu.addAction(action2)
menu.exec_(evt.globalPos()) #展示菜单
#参数 坐标-相对于屏幕 def __init__(self):
super().__init__()
self.resize(300,300)
self.setWindowTitle('右击菜单') if __name__=='__main__':
app=QApplication(sys.argv)
w=win()
w.show()
sys.exit(app.exec_())
方法二:
from PyQt5.QtWidgets import QApplication, QWidget,QPushButton,QMenu,QAction
import sys
from PyQt5.QtCore import Qt class win(QWidget):
def __init__(self):
super().__init__()
self.resize(300,300)
self.setWindowTitle('右击菜单')
self.menu=QMenu()
action1=QAction(self.menu)
action1.setText('菜单1')
self.menu.addAction(action1)
action2 = QAction(self.menu)
action2.setText('菜单2')
self.menu.addAction(action2)
self.setContextMenuPolicy(Qt.CustomContextMenu)
# setContextMenuPolicy 设置菜单
# 参数Qt.CustomContextMenu 自定义菜单-此时右击控件不会产生contextMenuEvent事件
# Qt.DefaultContextMenu 默认菜单;也就是右击时发生contextMenuEvent事件(方法一)
self.customContextMenuRequested.connect(self.menushow) #右击时发出菜单请求信号
#会向槽函数传递鼠标点击点的坐标-相对于控件 def menushow(self,point):
point1=self.mapToGlobal(point) #将窗口坐标转换成屏幕坐标
self.menu.exec_(point1) if __name__=='__main__':
app=QApplication(sys.argv)
w=win()
w.show()
sys.exit(app.exec_())

QPushButton按钮的更多相关文章
- 设置QPushbutton按钮背景、鼠标滑过状态、鼠标点击后状态用法
1.1当要设置QPushbutton按钮背景,字体颜色,鼠标滑过状态,鼠标单击后状态时,可以用QSS来设置,具体的代码如下: QPushButton *allSelect = new QPus ...
- Qt中使用setStyleSheet对QPushButton按钮进行外观设置
Qt中使用setStyleSheet对按钮进行外观设置 字体颜色的设置一般时以下两种方案: (1)属于QWidget子类的一些控件 可以直接使用样式表,例如label->setStyleShee ...
- QTableWidget嵌入QpushButton后定位是哪一个QpushButton
问题: 有时候会遇到这样的情况,在QTableWidget中我们需要嵌入一个QpushButton按钮,但是如何确定是哪个Button按下的呢? 解决: 一般地,一个按钮按下后会连接到一槽函数,那么在 ...
- QTableWidget嵌入QpushButton后定位QpushButton
问题: 有时候会遇到这样的情况,在QTableWidget中我们需要嵌入一个QpushButton按钮,但是如何确定是哪个Button按下的呢? 解决: 一般地,一个按钮按下后会连接到一槽函数,那么在 ...
- GUI学习之五——QPushbutton类学习笔记
QPushButton是QAbstractButton类下使用最多的子类,它的用法在上一章中基本讲完了,这里还总结了几个别的用法. 一.创建按钮 我们在前面所有的案例中创建按钮都是用这样的方式 win ...
- atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js
atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js 1. 图片按钮的效果总结 1 1.1. 按钮图片自动缩放的. 1 1.2. 不要 ...
- Qt样式表之三:实现按钮三态效果的三种方法
按钮的三态,指的是普通态.鼠标的悬停态.按下态.Qt中如果使用的是默认按钮,三态的效果是有的,鼠标放上去会变色,点击的时候有凹陷的效果. 但是如果自定义按钮实现三态效果有三种方法,一种是设置背景图,主 ...
- qt5-QPushButton按钮
Win::Win(QWidget *parent) //构造函数体 : QWidget(parent) //执行父类初始化操作 { //创建按钮方式一 ,);//重置窗口大小 this->set ...
- 5.从零开始创建一个QT窗口按钮
如何创建一个QT项目 如何创建一个QT项目 1.创建新项目 2.配置选择 3.增加按钮 4.按钮和窗体的大小标签图标设置 5.信号与槽 6.自定义信号与槽 代码 1.创建新项目 点击文件->新建 ...
随机推荐
- 自定义控件DataPager
在最近的一个项目中,涉及到一个自定义翻页控制的控件,下面就这一个控件做详细的说明,这个自定义控件的主要作用是对数据源进行翻页控制,比如说:“上一页.下一页.首页.末页”等相关操作,由于在一个项目中有多 ...
- D3.js & Data Visualization & SVG
D3.js & Data Visualization & SVG https://davidwalsh.name/learning-d3 // import {scaleLinear} ...
- ceph API之PHP的S3-SDK包的泛域名解析问题
安装dns工具包yum -y install bind-utils 安装dns软件 yum install -y dnsmasq 配置dnsmasq的配置文件:/etc/dnsmasq.conf li ...
- jQuery之制作简单的轮播图效果
[源代码] 链接:https://pan.baidu.com/s/1XpZ66D9fmSwWX3pCnGBqjA 密码:w104 [整体构思] 这个轮播图使用的是jQuery,所以Js的整体代量比较少 ...
- Codeforces960G Bandit Blues 【斯特林数】【FFT】
题目大意: 求满足比之前的任何数小的有A个,比之后的任何数小的有B个的长度为n的排列个数. 题目分析: 首先写出递推式,设s(n,k)表示长度为n的排列,比之前的数小的数有k个. 我们假设新加入的数为 ...
- HSQL可视化工具
本地使用HSQL数据库进行开发,多是集成在开发工具的内部,比如studio,往往看不到HSQL数据库,那么如何查看HSQL数据库呢? 可以使用hsql自带的可视化工具,运行hsqldb-*.jar 包 ...
- 09 Zabbix Item类型之Zabbix SNMP类型
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 Zabbix Item类型之Zabbix SNMP类型 SNMP是监控服务器以外设备的非常好的方式 ...
- 【转】安全加密(五):如何使用AES防止固件泄露
本文导读 随着电子产品更新换代速度的加快,往往都会进行系统升级或APP功能维护升级,但是由此产生了两个主要问题.首先,由于更新过程中出现错误,该设备可能变得无用:另外一个主要问题是:如何避免未经授权的 ...
- mathML如何在谷歌浏览器进行展示
前几天不是做了个word公式的解析吗,就是office插入的公式是个xmlObject对象,读出来就是个String,所以要进行转换才能在网页上展示,其实我对这方面也不是很了解,然后各种百度解决方案, ...
- [SDOI2016]储能表——数位DP
挺隐蔽的数位DP.少见 其实减到0不减了挺难处理.....然后就懵了. 其实换个思路: xor小于k的哪些都没了, 只要留下(i^j)大于等于k的那些数的和以及个数, 和-个数*k就是答案 数位DP即 ...