5、Qt-pyqt6常用基本控件 - 按钮控件

news/2025/3/18 18:47:12/文章来源:https://www.cnblogs.com/littlecc/p/18340847

Buttons -- 按钮类

控件名 说明
PushButton 按钮
ToolButton 工具按钮
RadioButton 单选按钮
CheckBox 复选框
CommandLinkButton 命令链接按钮
DialogButtonBox 对话框按钮盒

🕹 1. PushButton 按钮控件

这是最常用的控件之一,允许用户通过单击来执行操作
该控件既可以显示文本也可以显示图像,当该控件被单击时,它看起来像是被按下,然后释放

QAbstractButton 类属性 (QTDesigner右边框中的类)

  • text 显示文本
  • icon 显示图标
  • iconSize 图标设置大小
  • shortcut 设置快捷键
  • checkable 设置是否自动切换按钮
  • checked 设置默认选中状态
  • autoRepeat 设置是否会在用户按下时自动重复
  • autoExclusive 设置是否启用自动排他性(设置这个可以变成多选)
  • autoRepeatDelay 自动重复的初始延迟(以毫秒为单位)
  • autoRepeatInterval 自动重复的时间间隔(以毫秒为单位)

简单画两个按钮设置生成ui文件

代码如下:

pushbutton.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>Form</class><widget class="QWidget" name="Form"><property name="geometry"><rect><x>0</x><y>0</y><width>400</width><height>300</height></rect></property><property name="windowTitle"><string>Form</string></property><widget class="QPushButton" name="pushButton"><property name="geometry"><rect><x>50</x><y>180</y><width>75</width><height>23</height></rect></property><property name="text"><string>登录</string></property><property name="icon"><iconset><normaloff>E:/icon/登录.png</normaloff>E:/icon/登录.png</iconset></property><property name="shortcut"><string>Ctrl+L</string></property><property name="autoDefault"><bool>true</bool></property></widget><widget class="QPushButton" name="pushButton_2"><property name="geometry"><rect><x>260</x><y>180</y><width>75</width><height>23</height></rect></property><property name="text"><string>重置</string></property><property name="icon"><iconset><normaloff>E:/icon/退出登录.png</normaloff>E:/icon/退出登录.png</iconset></property><property name="shortcut"><string>Ctrl+U</string></property><property name="autoDefault"><bool>true</bool></property></widget><zorder>pushButton_2</zorder><zorder>pushButton</zorder></widget><resources/><connections/>
</ui>

button.py

# Form implementation generated from reading ui file 'pushbutton.ui'
#
# Created by: PyQt6 UI code generator 6.4.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again.  Do not edit this file unless you know what you are doing.from PyQt6 import QtCore, QtGui, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(400, 300)self.pushButton = QtWidgets.QPushButton(parent=Form)self.pushButton.setGeometry(QtCore.QRect(50, 180, 75, 23))icon = QtGui.QIcon()icon.addPixmap(QtGui.QPixmap("E:/icon/登录.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)self.pushButton.setIcon(icon)self.pushButton.setAutoDefault(True)self.pushButton.setObjectName("pushButton")self.pushButton_2 = QtWidgets.QPushButton(parent=Form)self.pushButton_2.setGeometry(QtCore.QRect(260, 180, 75, 23))icon1 = QtGui.QIcon()icon1.addPixmap(QtGui.QPixmap("E:/icon/退出登录.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)self.pushButton_2.setIcon(icon1)self.pushButton_2.setAutoDefault(True)self.pushButton_2.setObjectName("pushButton_2")self.pushButton_2.raise_()self.pushButton.raise_()self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))self.pushButton.setText(_translate("Form", "登录"))self.pushButton.setShortcut(_translate("Form", "Ctrl+L"))    #快捷键self.pushButton_2.setText(_translate("Form", "重置"))self.pushButton_2.setShortcut(_translate("Form", "Ctrl+U"))  #快捷键

main.py

from PyQt6.QtGui import QIntValidator
from PyQt6.QtWidgets import QApplication, QLabel
from PyQt6 import uic, QtGui
import sysif __name__ == '__main__':app = QApplication(sys.argv)    # 创建应用程序对象# 加载ui文件 ,ui变量相当于是LinrText.py文件中的setupUi函数ui = uic.loadUi('./pushbutton.ui')# 获取Button控件myQPushButton = ui.pushButtonmyQPushButton2 = ui.pushButton_2# 显示窗口(将ui文件内容显示)ui.show()sys.exit(app.exec())    # app.exec()进入无限消息循环,监听用户动作

🎳2. Tool Button 工具按钮

本质上是一个按钮,只是在按那种提供了默认文本和可选的箭头类型
与PushBtton类似,不同的是ToolButton控件可以设置工具按钮的显示样式和箭头类型,其中,工具按钮的显示样式通过ToolButton类的setToolButtonStyle()方法进行设置

工具按钮的初步了解

  • setText() 设置按钮提示文本
  • setIcon(QIcon()) 设置按钮图标
  • setIconSize(QSize) 设置图标大小
  • setToolTip(str) 因为图标和提示文本同时出现时,只会显示图标。通过这个设置可以显示不一样的提示文本

样式设置

setToolButtonStyle(Qt.ToolButtonStyle)

  • Qt.ToolButtonStyle 的风格有以下取值:

箭头样式

setArrowType(Qt.ArrowType)

  • Qt.ArrowType的风格如下:

自动提升

  • setAutoRaise(Bool): True

菜单及弹出方式

setPopupMode(QToolButton.ToolButtonPopupMode)

  • QToolButton.ToolButtonPopupMode 的风格如下:

对应类应为QCommandLinkButton,实际上是从pushButton继承过来的一种按钮,外观显示一个被设置了扁平化的QPushButton,与PushButton不同主要有如下:

  • 可以在按钮上显示双行文本,首行时QAbstractButton的text显示,次行类似于副标题,是通过CommandLinkButton的description属性来设置的
  • 默认情况下,他还会带有一个向右的箭头图标,该图标实际上就是QAbstractButton的ICon设置图标,只是填了一个向右箭头作为缺省值
  • 默认类似于一个扁平化自动凸起按钮

🥏 4.RadioButton 单选按钮控件

为用户提供有两个或多个互斥选项组成的选项集,当用户选中某个单选按钮时,同一组中的其他单选按钮不能同时选定

常用方法

  • setText() 设置单选按钮显示的文本
  • text() 获取单选按钮显示的文本
  • setChecked()或setCheckable() 设置单选按钮是否为选中状态,True为选中状态,False为未选中状态
  • isChecked() 返回单选按钮的状态,True为选中状态,False为未选中状态

🎯 5.Check Box 复选框按钮控件

用来表示是否选取了某个选项条件,常用于为用户提供具有是/否或 真/假 值的选项
与RadioButton控件类似,但它是为用户提供 多选 的选择,另外,它除了选中和未选中两种状态之外,还提供了第三种状态:半选中。
如果需要第三种状态,需要使用CheckBox类的setTristate()方法使其生效,并且可以使用checkState()方法查询当前状态

  • CheckBox控件的三种状态值及说明:
方法 说明
QT.Checked 选中
QT.PartiallyChecked 半选中
QT.Unchecked 未选中

🀄 6.DialogButtonBox 组合按钮控件

是一个包含很多按钮的控件,对话框中有多个需要分组排列的按钮时,可以使用DialogButtonBox类
开发人员可以向 QDialogButtonBox添加按钮,QDialogButtonBox会根据平台自动使用合适的布局

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

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

相关文章

设计模式图汇

模板模式简单工厂模式工厂模式原型模式建造者模式策略模式观察者模式装饰模式单件模式外观模式命令模式组合模式状态模式享元模式代理模式 / 适配器模式桥接模式中介模式

推荐3款免费且实用的数据库管理工具

前言 数据库在日常工作中确实扮演着至关重要的角色,无论是数据管理、分析还是应用开发,都离不开它的支持。今天大姚给大家分享3款免费且实用的数据库管理工具,希望可以帮助到有需要的同学。 DBeaver DBeaver是一款免费的跨平台数据库工具,适用于开发人员、数据库管理员、分…

kettle从入门到精通 第八十三课 ETL之kettle kettle调用python且接收返回值

场景:kettle调用python执行脚本,处理之后,再把结果数据流发给下一个步骤。 看到有个qq群里有个小伙伴求助要实现kettle调用python脚本,然后接收python脚本执行的结果,最后将结果传递到下一个步骤。之前的课程里面介绍的是kettle通过shell步骤调用python脚本,没有接收pyth…

攻防世界的一些题目

攻防世界的一些题目 唉,一些题目做的还是磕磕绊绊的,好菜啊,得加把劲了,马上要省赛了。。。 misc 如来十三掌 附件是一个docx,打开之后 夜哆悉諳多苦奢陀奢諦冥神哆盧穆皤三侄三即諸諳即冥迦冥隸數顛耶迦奢若吉怯陀諳怖奢智侄諸若奢數菩奢集遠俱老竟寫明奢若梵等盧皤豆蒙密…

6.交换机及其配置

6.1 交换机的基本概念# 路由器工作在:第三层网络层,跨局域网传输 交换机工作在:第二层数据链路层,在局域网内传输在PC2 ping 一下PC3 的IP交换机自动就会记录他们的MAC地址和端口号6.2 交换表的内容 小型交换机大型交换机6.3 交换机的交换模式直通-快速转发:知道地址后就…

5.局域网技术基础与应用

5.1 局域网基础 属于物理层和数据链路层共享式:布在一条线上类似 交换式:在一个交换机上 虚拟:也是通过交换机表示层:负责压缩5.2 综合布线系统设计(上)设备间子系统一般在一楼 管理子系统一般在二楼 水平子系统类似拉出来的网线118015.3 综合布线系统设计(下)多介质信…

Git 智能传输协议

Git - Transfer Protocols (git-scm.com) Git中存在两种传输数据的协议:“dump”和“smart”协议。 Dump 协议 类似HTTPS的Get请求,因为其安全性,已经很少被使用了。 获取内容的大致流程:获取info/refs 获取Head 然后一次获取object对象。(loose形式) 若获取某一对象失败…

[图文直播]Jenkins单分支流水线任务实操

前言 去年的时候,工作角色被定义为去做中台服务,虽然这个工作并不是我职业规划的主线,但正好也借此机会,去解决掉我“闭环能力”中一个暂时缺失的环节,我对自己的定位一直都是要做一个“极限单兵”,希望在地质专业软件这个相对细分的领域,做到自己能完全闭环下面的各个阶…

笔试查漏补缺

笔试查漏补缺 1:排序算法常用时间复杂度: 快速排序 快速排序的核心操作是“哨兵划分”,其目标是:选择数组中的某个元素作为“基准数”,将所有小于基准数的元素移到其左侧,而大于基准数的元素移到其右侧。具体来说,哨兵划分的流程如图所示。选取数组最左端元素作为基准数…