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基于phantomjs实现导入图片
May 13 Python
python+selenium实现京东自动登录及秒杀功能
Nov 18 Python
python 遍历目录(包括子目录)下所有文件的实例
Jul 11 Python
使用python脚本实现查询火车票工具
Jul 19 Python
python创建文件时去掉非法字符的方法
Oct 31 Python
快速解决vue.js 模板和jinja 模板冲突的问题
Jul 26 Python
wxPython实现绘图小例子
Nov 19 Python
Python通过4种方式实现进程数据通信
Mar 12 Python
Python 改变数组类型为uint8的实现
Apr 09 Python
Python3爬虫里关于Splash负载均衡配置详解
Jul 10 Python
python 删除系统中的文件(按时间,大小,扩展名)
Nov 19 Python
Qt自定义Plot实现曲线绘制的详细过程
Nov 02 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
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
使用angular写一个hello world
2015/01/23 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
JavaScript解八皇后问题的方法总结
2016/06/12 Javascript
微信JS接口大全
2016/08/25 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
使用form-create动态生成vue自定义组件和嵌套表单组件
2019/01/18 Javascript
通过实践编写优雅的JavaScript代码
2019/05/30 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
Python实现弹球小游戏
2020/08/01 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
文员个人求职自荐信
2013/09/21 职场文书
中学运动会广播稿
2014/01/19 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
学生社团文化节开幕式主持词
2014/03/28 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
教师自我剖析材料范文
2014/09/30 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
三方股东合作协议书
2014/10/28 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
2015年幼儿园班务工作总结
2015/05/12 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书