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 相关文章推荐
Python3实现生成随机密码的方法
Aug 23 Python
详解Python中的Descriptor描述符类
Jun 14 Python
python中常用的九种预处理方法分享
Sep 11 Python
python实现二叉树的遍历
Dec 11 Python
Python网络爬虫神器PyQuery的基本使用教程
Feb 03 Python
VSCode下好用的Python插件及配置
Apr 06 Python
python reverse反转部分数组的实例
Dec 13 Python
python 寻找离散序列极值点的方法
Jul 10 Python
Python进程池Pool应用实例分析
Nov 27 Python
关于ResNeXt网络的pytorch实现
Jan 14 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 Python
基于python实现删除指定文件类型
Jul 21 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中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
PHP反射机制用法实例
2014/08/28 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
php is_executable判断给定文件名是否可执行实例
2016/09/26 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
PHP异常类及异常处理操作实例详解
2018/12/19 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
浅谈Vue.js路由管理器 Vue Router
2018/08/16 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
用Python实现换行符转换的脚本的教程
2015/04/16 Python
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
django中静态文件配置static的方法
2018/05/20 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
Python内置加密模块用法解析
2019/11/25 Python
Python接口自动化测试的实现
2020/08/28 Python
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
单位门卫岗位职责
2013/12/20 职场文书
20年同学聚会感言
2014/02/03 职场文书
护士个人总结范文
2015/02/13 职场文书
看上去很美观后感
2015/06/10 职场文书
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL
java代码实现空间切割
2022/01/18 Java/Android
python使用torch随机初始化参数
2022/03/22 Python
Python中re模块的元字符使用小结
2022/04/07 Python