linux+qt+按钮图标,QPushButton按钮

c17cf740330be39f6cdd193bf83181db.png

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

7722dc82f8036afe8f430a35436899ba.png

设置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 ...

模拟提交API数据Pyqt版

其实这个模拟提交数据之前已经写过篇: Python requests模拟登录 因为现在在做的项目中需要一个debug请求调试API,用PHP的CURL写了一个,又因Pyqt更能直观灵活的显示请求的参数 ...

随机推荐

Allegro 快捷键设置

一.快捷键设置 Allegro可以通过修改env文件来设置快捷键,这对从其它软件如AD或PADS迁移过来的用户来说,可以沿用以前的操作习惯,还是很有意义的. Allegro的变量文件一共有2个:一个是 ...

HttpClient请求网络数据的Post请求

new Thread(){            public void run() {                                try { //获得输入框内容          ...

IOS 沙盒机制 浅析

IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容.所有的非代码文件都保存在这个地方,比如图片.声音.属性列表和文本文件 ...

awk,perl,python的命令行参数处理

Python,Perl,Bash命令行参数 Part I 日常经常性的和Perl,Python,Bash打交道,但是又经常性的搞混他们之间,在命令行上的特殊性和index的区别,Python真的是人性 ...

Ninject依赖注入——构造函数的注入

1.Ninject简介 Ninject是基于.Net平台的依赖注入框架,它能够将应用程序分离成一个个高内聚.低耦合(loosely-coupled, highly-cohesive)的模块,然后以一种 ...

mysql 5.7 多源复制 原创

一从两主:多源复制 每台mysql 服务器都需要加my.cnf要加两个参数才可以在GTID多源复制 master-info-repository=TABLE relay-log-info-reposi ...

JS单元测试框架:QUnit

QUnit:jQuery的单元测试框架,但不仅限于jQuery(从这个工具不需要引用jquery.js可以看出) index.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值