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 相关文章推荐
从零学Python之入门(三)序列
May 25 Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 Python
Pycharm学习教程(1) 定制外观
May 02 Python
PyQt5每天必学之带有标签的复选框
Apr 19 Python
Python for循环中的陷阱详解
Jul 13 Python
python 自定义对象的打印方法
Jan 12 Python
Python设计模式之策略模式实例详解
Jan 21 Python
Python迭代器iterator生成器generator使用解析
Oct 24 Python
Django视图扩展类知识点详解
Oct 25 Python
python 深度学习中的4种激活函数
Sep 18 Python
scrapy-splash简单使用详解
Feb 21 Python
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
May 17 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
PHP4.04简明安装
2006/10/09 PHP
php上传大文件设置方法
2016/04/14 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
浅谈js原生拖放
2016/11/21 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
Python实现获取某天是某个月中的第几周
2015/02/11 Python
使用Python制作一个打字训练小工具
2019/10/01 Python
Python实现不规则图形填充的思路
2020/02/02 Python
使用TFRecord存取多个数据案例
2020/02/17 Python
python异步Web框架sanic的实现
2020/04/27 Python
CSS3地图动态实例代码(圆圈向外扩散)
2018/06/15 HTML / CSS
全球性的在线婚纱礼服工厂:27dress.com
2019/03/21 全球购物
Auguste The Label官网:澳大利亚一家精品女装时尚品牌
2020/06/14 全球购物
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
Java基础知识面试题
2014/03/25 面试题
《逃家小兔》教学反思
2014/02/23 职场文书
团委书记的竞聘演讲稿
2014/04/24 职场文书
计算机专业自荐信
2014/05/24 职场文书
本溪关门山导游词
2015/02/09 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
python cv2图像质量压缩的算法示例
2021/06/04 Python
Java字符串逆序方法详情
2022/03/21 Java/Android
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis