按钮QPushButton

常用方法 描述
setCheckable() 设置按钮是否已经被选中,如果设置True,则表示按钮将保持已点击和释放状态
toggle() 在按钮状态之间进行切换
setIcon() 设置按钮上的图标
setEnabled() 设置按钮是否可以使用,当设置为False时,按钮变成不可用状态,点击它不会发射信号
isChecked() 返回按钮的状态,返回值为True或者False
setDefault() 设置按钮的默认状态
setText() 设置按钮的显示文本
text() 返回按钮的显示文本

设置快捷键

通过按钮名字能为QPushButton设置快捷键,比如名字为‘&Download’的按键,它的快捷键是‘Alt+D’。其规则是;想要实现快捷键为“Alt+D”,那么按钮的名字里有D这个字母,并且在D的前面加上“&”,这个字母D一般是按钮名称的首字母,而且在按钮显示时。“&”不会显示出来,如果想显示,那么需要转义,核心代码如下

# -*- coding: utf-8 -*-'''【简介】PyQt5中QButton例子'''import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *class Form(QDialog):def __init__(self, parent=None):super(Form, self).__init__(parent)layout = QVBoxLayout()self.btn1 = QPushButton("Button1")self.btn1.setCheckable(True)self.btn1.toggle()self.btn1.clicked.connect(lambda: self.whichbtn(self.btn1))self.btn1.clicked.connect(self.btnstate)layout.addWidget(self.btn1)self.btn2 = QPushButton('image')self.btn2.setIcon(QIcon(QPixmap("./images/python.png")))self.btn2.clicked.connect(lambda: self.whichbtn(self.btn2))layout.addWidget(self.btn2)self.setLayout(layout)self.btn3 = QPushButton("Disabled")self.btn3.setEnabled(False)layout.addWidget(self.btn3)self.btn4 = QPushButton("&Download")self.btn4.setDefault(True)self.btn4.clicked.connect(lambda: self.whichbtn(self.btn4))layout.addWidget(self.btn4)self.setWindowTitle("Button demo")def btnstate(self):if self.btn1.isChecked():print("button pressed")else:print("button released")def whichbtn(self, btn):print("clicked button is " + btn.text())if __name__ == '__main__':app = QApplication(sys.argv)btnDemo = Form()btnDemo.show()sys.exit(app.exec_())

单选按钮QRadioButton

方法 描述
setCheckanle() 设置按钮是否已经被选中,可以改变单选按钮的选中状态,如果设置为True则表示单选按钮将保持以点击和释放状态
isChecked() 返回单选按钮的状态,返回值True或False
setText() 设置单选按钮显示的文本
text() 返回单选按钮显示的文本
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *class Radiodemo(QWidget):def __init__(self, parent=None):super(Radiodemo, self).__init__(parent)layout = QHBoxLayout()self.btn1 = QRadioButton("Button1")self.btn1.setChecked(True)#将按钮1设为默认选中self.btn1.toggled.connect(lambda: self.btnstate(self.btn1))layout.addWidget(self.btn1)self.btn2 = QRadioButton("Button2")self.btn2.toggled.connect(lambda: self.btnstate(self.btn2))layout.addWidget(self.btn2)self.setLayout(layout)self.setWindowTitle("RadioButton demo")def btnstate(self, btn):if btn.text() == "Button1":if btn.isChecked() == True:print(btn.text() + " is selected")else:print(btn.text() + " is deselected")if btn.text() == "Button2":if btn.isChecked() == True:print(btn.text() + " is selected")else:print(btn.text() + " is deselected")
if __name__ == '__main__':app = QApplication(sys.argv)radioDemo = Radiodemo()radioDemo.show()sys.exit(app.exec_())

self.btn1.setChecked(True)#将按钮1设为默认选中
self.btn1.toggled.connect(lambda: self.btnstate(self.btn1))
toggled状态之间切换

复选框按钮QCheckBox

方法 描述
setChecked() 设置复选框的状态,设置为True表示选中,False表示取消选中的复选框
setText() 设置复选框的显示文本
text() 返回复选框的显示文本
isChecked() 检查复选框是否被选中
setTriState() 设置复选框为一个三态复选框
setCheckState() 三态复选框的状态设置,具体设置可以见下表

三态复选框的状态设置

名称 值 和含义
Qt.Checked 2 , 组件没有被选中(默认)
Qt.PartiallyChecked 1,组件被半选中
Qt.Unchecked 0,组件被选中
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qtclass CheckBoxDemo(QWidget):def __init__(self, parent=None):super(CheckBoxDemo, self).__init__(parent)#创建一个GroupBox组groupBox = QGroupBox("Checkboxes")groupBox.setFlat(False)#创建复选框1,并默认选中,当状态改变时信号触发事件self.checkBox1 = QCheckBox("&Checkbox1")self.checkBox1.setChecked(True)self.checkBox1.stateChanged.connect(lambda: self.btnstate(self.checkBox1))#创建复选框,标记状态改变时信号触发事件self.checkBox2 = QCheckBox("Checkbox2")self.checkBox2.toggled.connect(lambda: self.btnstate(self.checkBox2))#创建复选框3,设置为3状态,设置默认选中状态为半选状态,当状态改变时信号触发事件self.checkBox3 = QCheckBox("tristateBox")self.checkBox3.setTristate(True)self.checkBox3.setCheckState(Qt.PartiallyChecked)self.checkBox3.stateChanged.connect(lambda: self.btnstate(self.checkBox3))#水平布局layout = QHBoxLayout()#控件添加到水平布局中layout.addWidget(self.checkBox1)layout.addWidget(self.checkBox2)layout.addWidget(self.checkBox3)#设置QGroupBox组的布局方式groupBox.setLayout(layout)#设置主界面布局垂直布局mainLayout = QVBoxLayout()#QgroupBox的控件添加到主界面布局中mainLayout.addWidget(groupBox)#设置主界面布局self.setLayout(mainLayout)#设置主界面标题self.setWindowTitle("checkbox demo")#输出三个复选框当前的状态,0选中,1半选,2没选中def btnstate(self, btn):chk1Status = self.checkBox1.text() + ", isChecked=" + str(self.checkBox1.isChecked()) + ', chekState=' + str(self.checkBox1.checkState()) + "\n"chk2Status = self.checkBox2.text() + ", isChecked=" + str(self.checkBox2.isChecked()) + ', checkState=' + str(self.checkBox2.checkState()) + "\n"chk3Status = self.checkBox3.text() + ", isChecked=" + str(self.checkBox3.isChecked()) + ', checkState=' + str(self.checkBox3.checkState()) + "\n"print(chk1Status + chk2Status + chk3Status)
if __name__ == '__main__':app = QApplication(sys.argv)checkboxDemo = CheckBoxDemo()checkboxDemo.show()sys.exit(app.exec_())

QGroupBox为构建分组框提供了支持。分组框通常带有一个边框和一个标题栏,作为容器部件来使用,在其中可以布置各种窗口部件。布局时可用作一组控件的容器,

电气专业的计算机萌新,写博文不容易,如果你觉得本文对你有用,请点个赞支持下。谢谢。

pyqt5讲解2:QPushButton,QRadioButton,QCheckBox相关推荐

  1. Qt5:输入控件 QPushButton/ QToolButton/ QRadioButton/ QCheckBox/ QTextEdit/ QComboBox/ QSpinBox/ QLabel

    作者及原代码链接:跟小豆君学Qt 跟着学习:完整实现代码:示例截图: QPushButton autoDefault:自动默认按钮,当在一个对话框中,用户输入完信息后,想要点击回车确认,则这时可以设置 ...

  2. pyqt5讲解8:容器QTabWidget,QStackedWidget,QDockWidget

    QTabWidget 常用方法 方法 描述 addTab() 将一个控件添加到Tab控件的选项卡中 insertTab() 将一个Tab控件的选项卡插入到指定的位置 removeTab() 根据指定的 ...

  3. pyqt5讲解13:图形与特效,设置窗口大小

    一.窗口的风格 可以为每个QWidget都设置风格 setStyle(QStyle style) 获取当前平台支持的原有的QStyle样式 QstyleFactory.keys() 对QApplica ...

  4. pyqt5讲解10:布局管理讲解大全

    一.绝对布局 使用move(x,y)的方法. 绝对布局: 如果改变屏膜的大小,控件的位置不会发生变化, 不同 屏膜显示有区别 # -*- coding: utf-8 -*-'''[简介]PyQT5中A ...

  5. pyqt5讲解9:时间模块timer和网页交互

    time 如果要在应用程序中周期性地进行某项操作,则需要用到QTimer定时器,QTimer类提供了重复的和单次的定时器.要使用定时器,需要先创建一个QTimer实例,将其timeout信号连接到相应 ...

  6. pyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialog

    框QDialog 方法 描述 setWindowTitle() 设置对话框标题 setWindowModality() 设置窗口模态,取值如下:Qt.NonModal:非模态,可以和程序的其他窗口进行 ...

  7. pyqt5讲解1:窗口,QLabel,QLineEdit,QTextEdit

    过年的时候学习啦pyqt,不怎么用,都快忘记知识点啦. 开始写下吧,好记性不如烂笔头. 窗口类控件 QMainWindow 详细描述 QMainWindow类提供一个有菜单条.锚接窗口(例如工具条)和 ...

  8. pyqt5讲解12:自定义参数 (给信号传入参数)

    在pyqt编程过程中,经常会遇到给槽函数传递自定义参数的情况,比如有一个信号与槽函数的连接是 button1.clicked.connect(shou_page) 对于clicked 信号来说,是没有 ...

  9. pyqt5讲解6:菜单栏,工具栏,状态栏

    菜单栏QMenuBar 方法 描述 menuBar() 用于返回主窗口的QMenuBar对象 addMenu() 将菜单添加到菜单栏: addAction() 在菜单中进行添加某些操作: setEna ...

最新文章

  1. 2018个人写作计划~
  2. Python应用实战系列-如何通过Python来操作Oracle数据库:cx_Oracle
  3. CPU是什么?GPU是什么?有图有真相。
  4. java单引号转义_Java基础入门——Java语言基础(上)
  5. 分组(recyclerview嵌套)
  6. 【C++入门】C++ vector类
  7. (转)何为人?是为忍!
  8. 国家集训队论文整理分类
  9. 中南大学计算机学院考研好考吗,中南大学or湖南大学:我考研选学校的心路历程...
  10. python登录华为路由器
  11. 机器学习实战之信用卡欺诈案列
  12. 下厨房(istringstream的使用)----网易2017内推笔试编程题合集
  13. 一个小工具,解析微信接龙数据,转成excel表格(附源码)
  14. Shopee打包贴单商品代发选星卓越货代服务系统
  15. 迭代法求解贝尔曼期望方程的数学证明
  16. java的接口常用命名_Java命名和目录接口,Java Naming and Directory Interface,音标,读音,翻译,英文例句,英语词典...
  17. socket整理复习
  18. 比亚迪“亮刀”、宁德时代“狂奔”,动力电池市场的巨头混战几时休?
  19. 体验国产Linux系统,开局就翻车了…
  20. 七夕 | 远光天鹊为企业异构数据搭桥

热门文章

  1. 【虚拟化】docker创建mysql镜像,docker内部操作mysql
  2. Spring Boot-场景启动器
  3. jfinal使用render之后还会继续往下执行代码吗
  4. 牛客题霸 NC18 顺时针旋转矩阵
  5. Linux——查看硬件配置命令
  6. BugKuCTF WEB 头等舱
  7. html多条件检索折叠,八种方式实现多条件匹配
  8. 【笔记】二叉树递归算法和非递归算法的实现 先序/中序/后续遍历 打印结点以及顺序数 构造二叉树
  9. 笔记2深度学习 梯度和梯度法
  10. 数据结构和算法之时间复杂度