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实现RSA加密(解密)算法
Feb 17 Python
Python及Django框架生成二维码的方法分析
Jan 31 Python
python实现嵌套列表平铺的两种方法
Nov 08 Python
selenium在执行phantomjs的API并获取执行结果的方法
Dec 17 Python
Python将string转换到float的实例方法
Jul 29 Python
python 并发编程 阻塞IO模型原理解析
Aug 20 Python
如何使用Python脚本实现文件拷贝
Nov 20 Python
浅谈python的elementtree模块处理中文注意事项
Mar 06 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
Jun 02 Python
在CentOS7下安装Python3教程解析
Jul 09 Python
python 实现弹球游戏的示例代码
Nov 17 Python
如何通过python检查文件是否被占用
Dec 18 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
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
js实现文字在按钮上滚动的方法
2015/08/20 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
JS获取当前页面名称的简单实例
2016/08/19 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
学习python (1)
2006/10/31 Python
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
解决python给列表里添加字典时被最后一个覆盖的问题
2019/01/21 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
python如何求100以内的素数
2020/05/27 Python
python关于倒排列的知识点总结
2020/10/13 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
PHP如何设置和取得Cookie值
2015/06/30 面试题
企业项目策划书
2014/01/11 职场文书
2013年军训通讯稿
2014/02/05 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
2015年教师节新闻稿
2015/07/17 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android