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 14 Python
Python贪吃蛇游戏编写代码
Oct 26 Python
Python实现小数转化为百分数的格式化输出方法示例
Sep 20 Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 Python
Python函数参数操作详解
Aug 03 Python
Python 使用PIL中的resize进行缩放的实例讲解
Aug 03 Python
Python判断变量名是否合法的方法示例
Jan 28 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
Jul 14 Python
Python多进程multiprocessing、进程池用法实例分析
Mar 24 Python
python有几个版本
Jun 17 Python
Python正则re模块使用步骤及原理解析
Aug 18 Python
如何在向量化NumPy数组上进行移动窗口
May 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
php使用curl打开https网站的方法
2015/06/17 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
canvas的神奇用法
2017/02/03 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
shiro授权的实现原理
2017/09/21 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
2019/06/10 Javascript
利用Electron简单撸一个Markdown编辑器的方法
2019/06/10 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
python字典键值对的添加和遍历方法
2016/09/11 Python
使用Python绘制图表大全总结
2017/02/11 Python
python 读取文件并替换字段的实例
2018/07/12 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2019/04/01 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
物业管理个人自我评价
2013/11/08 职场文书
理发店策划方案
2014/06/05 职场文书
领导班子对照检查材料
2014/09/22 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
班主任寄语2015
2015/02/26 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python
Python使用MapReduce进行简单的销售统计
2022/04/22 Python
Python 统计序列中元素的出现频度
2022/04/26 Python