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列表与元组详解实例
Nov 01 Python
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
Python实现的计数排序算法示例
Nov 29 Python
Python中elasticsearch插入和更新数据的实现方法
Apr 01 Python
python 每天如何定时启动爬虫任务(实现方法分享)
May 21 Python
python/sympy求解矩阵方程的方法
Nov 08 Python
Python后台管理员管理前台会员信息的讲解
Jan 28 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
Aug 13 Python
Python 3.8正式发布,来尝鲜这些新特性吧
Oct 15 Python
解决python web项目意外关闭,但占用端口的问题
Dec 17 Python
Python实现图像去噪方式(中值去噪和均值去噪)
Dec 18 Python
python opencv肤色检测的实现示例
Dec 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
基于mysql的论坛(1)
2006/10/09 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
2013/08/05 Javascript
JavaScript?Apple设备检测示例代码
2013/11/15 Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
2014/07/21 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
Bootstrap笔记之缩略图、警告框实例详解
2017/03/09 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
关于vue-resource报错450的解决方案
2017/07/24 Javascript
jquery+css实现下拉列表功能
2017/09/03 jQuery
swiper自定义分页器使用方法详解
2020/09/14 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
2018/09/17 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
Python实现类继承实例
2014/07/04 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
使用python对excle和json互相转换的示例
2018/10/23 Python
简单分析python的类变量、实例变量
2019/08/23 Python
Pytorch之parameters的使用
2019/12/31 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
英国比较机场停车场网站:Airport Parking Essentials
2019/12/01 全球购物
三年级学生评语
2014/04/23 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
2014年团队工作总结
2014/11/24 职场文书
《合作意向书》怎么写?
2019/08/20 职场文书
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸