python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例


Posted in Python onFebruary 28, 2020

PyQt5单选按钮控件QRadioButton简介

QRadioButton 继承自 QAbstractButton,其主要作用提供用户一些互斥的按钮。

QRadioButton 只有一个的时候,功能类似于复选框, 可以选择和取消,但是如果有多个,则必须有一个被选中

QRadioButton类中常用的方法

方法 描述
setCheckanle() 设置按钮是否已经被选中,可以改变单选按钮的选中状态,如果设置为True则表示单选按钮将保持以点击和释放状态
isChecked() 返回单选按钮的状态,返回值True或False
setText() 设置单选按钮显示的文本
text() 返回单选按钮显示的文本

QRadioButton按钮的使用实例

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class RadioDemo(QWidget):
 def __init__(self,parent=None):
  super(RadioDemo,self).__init__(parent)
  #水平布局
  layout=QHBoxLayout()


  self.btn1=QRadioButton('Button1')
  #默认选中btn1
  self.btn1.setChecked(True)
  #toggled信号与槽函数绑定
  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):
 #输出按钮1与按钮2的状态,选中还是没选中
  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_())

效果如图

python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例

QRadioButton代码分析

在这个例子中,两个互斥的单选框被放置在窗口中

第一个单选按钮btn1,被设置成默认状态

self.btn1.setChecked(True)

当选择两个按钮相互切换时,按钮的状态发生改变,将触发toggle信号,并与槽函数btnstate()连接。使用lamdba的方式允许将源信号传递给槽函数,将按钮作为参数

self.btn1.toggled.connect(lambda :self.btnstate(self.btn1))
self.btn1.toggled.connect(lambda :self.btnstate(self.btn1))

当发射toggled信号后,使用btnstate()函数来检查按钮的状态

所有QRadioButton的控件是互斥的,所以也可以通过多个父控件来对QRadioButton进行分组。不过,一般使用QButtonGroup来对按键进行分组。通过按键分组的方式来让不同类型的QRadioButton不互相排斥。

本文主要讲解了PyQt5单选按钮控件QRadioButton详细使用方法与实例,更多关于PyQt5控件知识请查看下面的相关链接

Python 相关文章推荐
可用于监控 mysql Master Slave 状态的python代码
Feb 10 Python
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
python实现kNN算法
Dec 20 Python
Python学习笔记之open()函数打开文件路径报错问题
Apr 28 Python
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
python中csv文件的若干读写方法小结
Jul 04 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
Dec 17 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
Feb 21 Python
解决pyshp UnicodeDecodeError的问题
Dec 06 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
使用Python三角函数公式计算三角形的夹角案例
Apr 15 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
Feb 28 #Python
Python post请求实现代码实例
Feb 28 #Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
Feb 28 #Python
Python接口测试get请求过程详解
Feb 28 #Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 #Python
Python爬取365好书中小说代码实例
Feb 28 #Python
Python反爬虫伪装浏览器进行爬虫
Feb 28 #Python
You might like
PHP遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
2014/03/20 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
require.js的用法详解
2015/10/20 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
python通过pil为png图片填充上背景颜色的方法
2015/03/17 Python
python基于socket实现网络广播的方法
2015/04/29 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
前端制作动画的几种方式(css3,js)
2016/12/12 HTML / CSS
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
小学端午节活动方案
2014/03/13 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
商务英语专业求职信
2014/06/26 职场文书
Python合并多张图片成PDF
2021/06/09 Python
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle
Win11 BitLocker 驱动器加密
2022/04/19 数码科技