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发布模块的步骤分享
Feb 21 Python
Python减少循环层次和缩进的技巧分析
Mar 15 Python
利用Python破解验证码实例详解
Dec 08 Python
selenium处理元素定位点击无效问题
Jun 12 Python
使用Python实现文字转语音并生成wav文件的例子
Aug 08 Python
Python @property原理解析和用法实例
Feb 11 Python
TensorFlow的reshape操作 tf.reshape的实现
Apr 19 Python
什么是python的id函数
Jun 11 Python
Keras 实现加载预训练模型并冻结网络的层
Jun 15 Python
Python3获取cookie常用三种方案
Oct 05 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 Python
详细介绍python类及类的用法
May 31 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中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
JS实现前端缓存的方法
2017/09/21 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
Bootstrap实现下拉菜单多级联动
2017/11/23 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
Django框架视图函数设计示例
2019/07/29 Python
python实现名片管理器的示例代码
2019/12/17 Python
详解Python实现进度条的4种方式
2020/01/15 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
旧时光糖果:Old Time Candy
2018/02/05 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
幼师专业毕业生自荐信
2013/09/29 职场文书
上班打牌检讨书
2014/02/07 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
暑期教师培训方案
2014/06/07 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
教师节表彰会主持词
2015/07/06 职场文书
党组织结对共建协议书
2016/03/23 职场文书
python 制作一个gui界面的翻译工具
2021/05/14 Python