QButtonGroup 的继承图:

QButtonGroup 的描述:

它是个抽象的按钮容器,可以将多个按钮划分为一组

之所以抽象是指它不具备可视化的效果(因为它继承自QObject ,一般继承自QWidget的才具有可视化效果)。

它一般放的是可被检查的按钮:例如单选按钮,多选按钮,

QButtonGroup 的继承:

它继承自QObjecct 类

QButtonGroup 的功能:

添加按钮:

from PyQt5.Qt import * #刚开始学习可以这样一下导入

importsys#1,创建app

app =QApplication(sys.argv)#2,控件的操作:#创建控件

window =QWidget()#设置控件

window.setWindowTitle("QRadioButton")

window.resize(500,500)

radio_button_1= QRadioButton("男-Male",window)

radio_button_1.move(100,100)

radio_button_1.setIcon(QIcon("icon.ico"))

radio_button_1.setShortcut("Ctrl+M")

radio_button_2= QRadioButton("女-Famale",window)

radio_button_2.move(100,200)

radio_button_2.setIcon(QIcon("icon.ico"))

radio_button_2.setShortcut("Ctrl+F")###########################################################

sex_group =QButtonGroup(window)

sex_group.addButton(radio_button_1)

sex_group.addButton(radio_button_2)###########################################################

radio_button_yes= QRadioButton("yes",window)

radio_button_yes.move(300,100)

radio_button_no= QRadioButton("yes",window)

radio_button_no.move(300,200)###########################################################

judge_group =QButtonGroup(window)

judge_group.addButton(radio_button_yes)

judge_group.addButton(radio_button_no)###########################################################

#展示控件

window.show()#3,进入消息循环

sys.exit(app.exec_())

View Code

id的用途:

添加按钮的时候设置id 是方便了后面对用户所做选择进行判断,进行分析处理。

它的默认值是-1

这里要注意,-1只是个标识,系统会为每个按钮自动分配id ,并不是所有的按钮的id 都是-1

所谓自动分配是从-2开始,-2,-3,-4,,,,

我们这里给男设置 1  女设置2

from PyQt5.Qt import * #刚开始学习可以这样一下导入

importsys#1,创建app

app =QApplication(sys.argv)#2,控件的操作:#创建控件

window =QWidget()#设置控件

window.setWindowTitle("QRadioButton")

window.resize(500,500)

radio_button_1= QRadioButton("男-Male",window)

radio_button_1.move(100,100)

radio_button_1.setIcon(QIcon("icon.ico"))

radio_button_1.setShortcut("Ctrl+M")

radio_button_2= QRadioButton("女-Famale",window)

radio_button_2.move(100,200)

radio_button_2.setIcon(QIcon("icon.ico"))

radio_button_2.setShortcut("Ctrl+F")#########################添加按钮的时候给它设置id##################################

sex_group =QButtonGroup(window)

sex_group.addButton(radio_button_1,1)

sex_group.addButton(radio_button_2,2)#########################添加按钮的时候给它设置id##################################

radio_button_yes= QRadioButton("yes",window)

radio_button_yes.move(300,100)

radio_button_no= QRadioButton("yes",window)

radio_button_no.move(300,200)###########################################################

judge_group =QButtonGroup(window)

judge_group.addButton(radio_button_yes)

judge_group.addButton(radio_button_no)###########################################################

#展示控件

window.show()#3,进入消息循环

sys.exit(app.exec_())

View Code

查看组中的按钮:

from PyQt5.Qt import * #刚开始学习可以这样一下导入

importsys#1,创建app

app =QApplication(sys.argv)#2,控件的操作:#创建控件

window =QWidget()#设置控件

window.setWindowTitle("QRadioButton")

window.resize(500,500)

radio_button_1= QRadioButton("男-Male",window)

radio_button_1.move(100,100)

radio_button_1.setIcon(QIcon("icon.ico"))

radio_button_1.setShortcut("Ctrl+M")

radio_button_2= QRadioButton("女-Famale",window)

radio_button_2.move(100,200)

radio_button_2.setIcon(QIcon("icon.ico"))

radio_button_2.setShortcut("Ctrl+F")###########################################################

sex_group =QButtonGroup(window)

sex_group.addButton(radio_button_1)

sex_group.addButton(radio_button_2)###########################################################

radio_button_yes= QRadioButton("yes",window)

radio_button_yes.move(300,100)

radio_button_no= QRadioButton("yes",window)

radio_button_no.move(300,200)###########################################################

judge_group =QButtonGroup(window)

judge_group.addButton(radio_button_yes)

judge_group.addButton(radio_button_no)###########################################################

#****************************查看组中的按钮*******************************

print(sex_group.buttons())print(judge_group.buttons())#****************************查看组中的按钮*******************************

#展示控件

window.show()#3,进入消息循环

sys.exit(app.exec_())

View Code

如果添加按钮的时候给设置id 的话,那么,我们在查看按钮的时候可以根据id 来查看,

from PyQt5.Qt import * #刚开始学习可以这样一下导入

importsys#1,创建app

app =QApplication(sys.argv)#2,控件的操作:#创建控件

window =QWidget()#设置控件

window.setWindowTitle("QRadioButton")

window.resize(500,500)

radio_button_1= QRadioButton("男-Male",window)

radio_button_1.move(100,100)

radio_button_1.setIcon(QIcon("icon.ico"))

radio_button_1.setShortcut("Ctrl+M")

radio_button_2= QRadioButton("女-Famale",window)

radio_button_2.move(100,200)

radio_button_2.setIcon(QIcon("icon.ico"))

radio_button_2.setShortcut("Ctrl+F")#########################添加按钮的时候给它设置id##################################

sex_group =QButtonGroup(window)

sex_group.addButton(radio_button_1,1)

sex_group.addButton(radio_button_2,2)#########################添加按钮的时候给它设置id##################################

radio_button_yes= QRadioButton("yes",window)

radio_button_yes.move(300,100)

radio_button_no= QRadioButton("yes",window)

radio_button_no.move(300,200)###########################################################

judge_group =QButtonGroup(window)

judge_group.addButton(radio_button_yes)

judge_group.addButton(radio_button_no)###########################################################

#****************************查看id为 1 的按钮*******************************

print(sex_group.button(1))#****************************查看id为 1 的按钮*******************************

#展示控件

window.show()#3,进入消息循环

sys.exit(app.exec_())

在按钮组中,查看id 为1的按钮

查看组中被选中的按钮:

from PyQt5.Qt import * #刚开始学习可以这样一下导入

importsys#1,创建app

app =QApplication(sys.argv)#2,控件的操作:#创建控件

window =QWidget()#设置控件

window.setWindowTitle("QRadioButton")

window.resize(500,500)

radio_button_1= QRadioButton("男-Male",window)

radio_button_1.move(100,100)

radio_button_1.setIcon(QIcon("icon.ico"))

radio_button_1.setShortcut("Ctrl+M")

radio_button_2= QRadioButton("女-Famale",window)

radio_button_2.move(100,200)

radio_button_2.setIcon(QIcon("icon.ico"))

radio_button_2.setShortcut("Ctrl+F")

radio_button_1.setChecked(True)#########################添加按钮的时候给它设置id##################################

sex_group =QButtonGroup(window)

sex_group.addButton(radio_button_1,1)

sex_group.addButton(radio_button_2,2)#########################添加按钮的时候给它设置id##################################

radio_button_yes= QRadioButton("yes",window)

radio_button_yes.move(300,100)

radio_button_no= QRadioButton("yes",window)

radio_button_no.move(300,200)###########################################################

judge_group =QButtonGroup(window)

judge_group.addButton(radio_button_yes)

judge_group.addButton(radio_button_no)###########################################################

#****************************查看组中被选中的按钮*******************************

print(sex_group.checkedButton())#****************************查看组中被选中的按钮*******************************

#展示控件

window.show()#3,进入消息循环

sys.exit(app.exec_())

View Code

移除按钮:

它并不是从window 上删除这个按钮,而只是将其移出抽象的按钮组。

from PyQt5.Qt import * #刚开始学习可以这样一下导入

importsys#1,创建app

app =QApplication(sys.argv)#2,控件的操作:#创建控件

window =QWidget()#设置控件

window.setWindowTitle("QRadioButton")

window.resize(500,500)

radio_button_1= QRadioButton("男-Male",window)

radio_button_1.move(100,100)

radio_button_1.setIcon(QIcon("icon.ico"))

radio_button_1.setShortcut("Ctrl+M")

radio_button_2= QRadioButton("女-Famale",window)

radio_button_2.move(100,200)

radio_button_2.setIcon(QIcon("icon.ico"))

radio_button_2.setShortcut("Ctrl+F")

radio_button_1.setChecked(True)#########################添加按钮的时候给它设置id##################################

sex_group =QButtonGroup(window)

sex_group.addButton(radio_button_1,1)

sex_group.addButton(radio_button_2,2)#########################添加按钮的时候给它设置id##################################

#****************************移出按钮组*******************************

sex_group.removeButton(radio_button_2)#****************************移出按钮组*******************************

radio_button_yes= QRadioButton("yes",window)

radio_button_yes.move(300,100)

radio_button_no= QRadioButton("yes",window)

radio_button_no.move(300,200)###########################################################

judge_group =QButtonGroup(window)

judge_group.addButton(radio_button_yes)

judge_group.addButton(radio_button_no)###########################################################

#展示控件

window.show()#3,进入消息循环

sys.exit(app.exec_())

View Code

绑定和获取ID:

前面的添加按钮到按钮组的时候可以绑定id ,如果忘了传了,

也可以用方法来设置。

from PyQt5.Qt import * #刚开始学习可以这样一下导入

importsys#1,创建app

app =QApplication(sys.argv)#2,控件的操作:#创建控件

window =QWidget()#设置控件

window.setWindowTitle("QRadioButton")

window.resize(500,500)

radio_button_1= QRadioButton("男-Male",window)

radio_button_1.move(100,100)

radio_button_1.setIcon(QIcon("icon.ico"))

radio_button_1.setShortcut("Ctrl+M")

radio_button_2= QRadioButton("女-Famale",window)

radio_button_2.move(100,200)

radio_button_2.setIcon(QIcon("icon.ico"))

radio_button_2.setShortcut("Ctrl+F")

radio_button_1.setChecked(True)#########################添加按钮的时候给它设置id##################################

sex_group =QButtonGroup(window)

sex_group.addButton(radio_button_1)

sex_group.addButton(radio_button_2)#########################添加按钮的时候给它设置id##################################

#****************************绑定id *******************************

sex_group.setId(radio_button_1,1)

sex_group.setId(radio_button_2,2)#****************************绑定id *******************************

#****************************获取id *******************************

print(sex_group.id(radio_button_1))print(sex_group.id(radio_button_2))#****************************获取id *******************************

radio_button_yes= QRadioButton("yes",window)

radio_button_yes.move(300,100)

radio_button_no= QRadioButton("yes",window)

radio_button_no.move(300,200)###########################################################

judge_group =QButtonGroup(window)

judge_group.addButton(radio_button_yes)

judge_group.addButton(radio_button_no)###########################################################

#展示控件

window.show()#3,进入消息循环

sys.exit(app.exec_())

绑定和获取组中按钮的id

from PyQt5.Qt import * #刚开始学习可以这样一下导入

importsys#1,创建app

app =QApplication(sys.argv)#2,控件的操作:#创建控件

window =QWidget()#设置控件

window.setWindowTitle("QRadioButton")

window.resize(500,500)

radio_button_1= QRadioButton("男-Male",window)

radio_button_1.move(100,100)

radio_button_1.setIcon(QIcon("icon.ico"))

radio_button_1.setShortcut("Ctrl+M")

radio_button_2= QRadioButton("女-Famale",window)

radio_button_2.move(100,200)

radio_button_2.setIcon(QIcon("icon.ico"))

radio_button_2.setShortcut("Ctrl+F")

radio_button_1.setChecked(True)#########################添加按钮的时候给它设置id##################################

sex_group =QButtonGroup(window)

sex_group.addButton(radio_button_1)

sex_group.addButton(radio_button_2)#########################添加按钮的时候给它设置id##################################

#****************************绑定id *******************************

sex_group.setId(radio_button_1,1)

sex_group.setId(radio_button_2,2)#****************************绑定id *******************************

#****************************获取id *******************************

print(sex_group.id(radio_button_1))print(sex_group.id(radio_button_2))#****************************获取id *******************************

#****************************查看当前选中的按钮的id*******************************

print(sex_group.checkedId())#****************************查看当前选中的按钮的id*******************************

radio_button_yes= QRadioButton("yes",window)

radio_button_yes.move(300,100)

radio_button_no= QRadioButton("yes",window)

radio_button_no.move(300,200)###########################################################

judge_group =QButtonGroup(window)

judge_group.addButton(radio_button_yes)

judge_group.addButton(radio_button_no)###########################################################

#展示控件

window.show()#3,进入消息循环

sys.exit(app.exec_())

查看当前组中选中的按钮的id

如果都没有选中的话,id 是-1

独占设置:

可以将组中的独占设置为否!

from PyQt5.Qt import * #刚开始学习可以这样一下导入

importsys#1,创建app

app =QApplication(sys.argv)#2,控件的操作:#创建控件

window =QWidget()#设置控件

window.setWindowTitle("QRadioButton")

window.resize(500,500)

radio_button_1= QRadioButton("男-Male",window)

radio_button_1.move(100,100)

radio_button_1.setIcon(QIcon("icon.ico"))

radio_button_1.setShortcut("Ctrl+M")

radio_button_2= QRadioButton("女-Famale",window)

radio_button_2.move(100,200)

radio_button_2.setIcon(QIcon("icon.ico"))

radio_button_2.setShortcut("Ctrl+F")

radio_button_1.setChecked(True)#########################添加按钮的时候给它设置id##################################

sex_group =QButtonGroup(window)

sex_group.addButton(radio_button_1)

sex_group.addButton(radio_button_2)#########################添加按钮的时候给它设置id##################################

#****************************将一个组的独占设置为否定*******************************

sex_group.setExclusive(False)#****************************将一个组的独占设置为否定*******************************

radio_button_yes= QRadioButton("yes",window)

radio_button_yes.move(300,100)

radio_button_no= QRadioButton("yes",window)

radio_button_no.move(300,200)###########################################################

judge_group =QButtonGroup(window)

judge_group.addButton(radio_button_yes)

judge_group.addButton(radio_button_no)###########################################################

#展示控件

window.show()#3,进入消息循环

sys.exit(app.exec_())

View Code

QButtonGroup 的信号:

它会传递两种类型的值,一个是具体哪个按钮,一个是它的id

发出信号时向外传出的int 指的是之前设置的id  .

from PyQt5.Qt import * #刚开始学习可以这样一下导入

importsys#1,创建app

app =QApplication(sys.argv)#2,控件的操作:#创建控件

window =QWidget()#设置控件

window.setWindowTitle("QRadioButton")

window.resize(500,500)

radio_button_1= QRadioButton("男-Male",window)

radio_button_1.move(100,100)

radio_button_1.setIcon(QIcon("icon.ico"))

radio_button_1.setShortcut("Ctrl+M")

radio_button_2= QRadioButton("女-Famale",window)

radio_button_2.move(100,200)

radio_button_2.setIcon(QIcon("icon.ico"))

radio_button_2.setShortcut("Ctrl+F")

radio_button_1.setChecked(True)#########################添加按钮的时候给它设置id##################################

sex_group =QButtonGroup(window)

sex_group.addButton(radio_button_1)

sex_group.addButton(radio_button_2)#########################添加按钮的时候给它设置id##################################

#****************************信号 向外传出的是具体的按钮*******************************

sex_group.buttonClicked.connect(lambda val:print(val))#****************************信号 向外传出的是具体的按钮*******************************

radio_button_yes= QRadioButton("yes",window)

radio_button_yes.move(300,100)

radio_button_no= QRadioButton("yes",window)

radio_button_no.move(300,200)###########################################################

judge_group =QButtonGroup(window)

judge_group.addButton(radio_button_yes)

judge_group.addButton(radio_button_no)###########################################################

#展示控件

window.show()#3,进入消息循环

sys.exit(app.exec_())

传出的是按钮

对于这种信号名字相同,参数类型不同,我们可以用以下方式进行信号选择:

from PyQt5.Qt import * #刚开始学习可以这样一下导入

importsys#1,创建app

app =QApplication(sys.argv)#2,控件的操作:#创建控件

window =QWidget()#设置控件

window.setWindowTitle("QRadioButton")

window.resize(500,500)

radio_button_1= QRadioButton("男-Male",window)

radio_button_1.move(100,100)

radio_button_1.setIcon(QIcon("icon.ico"))

radio_button_1.setShortcut("Ctrl+M")

radio_button_2= QRadioButton("女-Famale",window)

radio_button_2.move(100,200)

radio_button_2.setIcon(QIcon("icon.ico"))

radio_button_2.setShortcut("Ctrl+F")

radio_button_1.setChecked(True)#########################添加按钮的时候给它设置id##################################

sex_group =QButtonGroup(window)

sex_group.addButton(radio_button_1)

sex_group.addButton(radio_button_2)#########################添加按钮的时候给它设置id##################################

#****************************信号 向外传出的是按钮的id *******************************

sex_group.buttonClicked[int].connect(lambda val:print(val))#****************************信号 向外传出的是按钮的id ******************************

radio_button_yes= QRadioButton("yes",window)

radio_button_yes.move(300,100)

radio_button_no= QRadioButton("yes",window)

radio_button_no.move(300,200)###########################################################

judge_group =QButtonGroup(window)

judge_group.addButton(radio_button_yes)

judge_group.addButton(radio_button_no)###########################################################

#展示控件

window.show()#3,进入消息循环

sys.exit(app.exec_())

传出的是按钮的id

当然,获取了具体的按钮之后,自然很简单就可以获得它的id 了。

直接用sex_group.id() 就可以:

from PyQt5.Qt import * #刚开始学习可以这样一下导入

importsys#1,创建app

app =QApplication(sys.argv)#2,控件的操作:#创建控件

window =QWidget()#设置控件

window.setWindowTitle("QRadioButton")

window.resize(500,500)

radio_button_1= QRadioButton("男-Male",window)

radio_button_1.move(100,100)

radio_button_1.setIcon(QIcon("icon.ico"))

radio_button_1.setShortcut("Ctrl+M")

radio_button_2= QRadioButton("女-Famale",window)

radio_button_2.move(100,200)

radio_button_2.setIcon(QIcon("icon.ico"))

radio_button_2.setShortcut("Ctrl+F")

radio_button_1.setChecked(True)#########################添加按钮的时候给它设置id##################################

sex_group =QButtonGroup(window)

sex_group.addButton(radio_button_1)

sex_group.addButton(radio_button_2)#########################添加按钮的时候给它设置id##################################

#****************************信号 向外传出的是按钮的id *******************************

sex_group.buttonClicked.connect(lambda val:print(val,sex_group.id(val)))#****************************信号 向外传出的是按钮的id ******************************

radio_button_yes= QRadioButton("yes",window)

radio_button_yes.move(300,100)

radio_button_no= QRadioButton("yes",window)

radio_button_no.move(300,200)###########################################################

judge_group =QButtonGroup(window)

judge_group.addButton(radio_button_yes)

judge_group.addButton(radio_button_no)###########################################################

#展示控件

window.show()#3,进入消息循环

sys.exit(app.exec_())

既获得按钮,又获得id ,(获得按钮其实就可以获得id )

总结:

以上就是按钮组的介绍,它一般都是配合QRadioButton 和 QCheckBox 使用的!

qbuttongroup如何都不选中_将单选按钮和多选按钮分组的类QButtonGroup相关推荐

  1. qbuttongroup如何都不选中_全程马拉松,半程马拉松该如何跑?很多人都不知道这些细节...

    现在已经到12月份了,全国各地的马拉松也接近尾声,回想自己这一年参加了多少次全程马拉松或半程马拉松? 很多人跑步最初的宗旨是为了减肥.为了健康,为了让自己拥有一个好身体,可是不知不觉中在朋友又或自己的 ...

  2. 【心善渊Selenium3.0基础】— 15、Selenium中单选按钮和多选按钮的操作

    文章目录 1.页面中的单选按钮和多选按钮 2.判断按钮是否选中`is_selected()` 3.单选按钮的操作 4.多选按钮的操作 实现步骤: 示例: 5.选择部分多选按钮的操作 1.页面中的单选按 ...

  3. PHP 单选 多选的统计,使用单选按钮和多选按钮,制作带自动统计功能的调查问卷(一)...

    我们在制作一份调查问卷时,可以插入多组单选按钮.多选按钮,并链接到单元格,然后通过公式来自动统计调查结果.在这里面有两个问题比较关键,第一个问题就是单选按钮怎么去分成多组,第二问题就是怎样用公式来自动 ...

  4. html自定义单选按钮,美化表单——自定义单选按钮和复选按钮

    大家都知道,在Web的Form中美化是最头痛的,尤其是表单中的"input[type=checkbox]"."input[type="radio"]& ...

  5. java学习(76):GUL单选按钮和复选按钮

    //单选按钮和复选按钮 //面向对象思想,面板,窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test11 ext ...

  6. 单选按钮、复选按钮的简单应用

    单选按钮.复选按钮简单应用 本人是初学者,参考前人代码,一边学习,一边把内容分享给大家...... 页面效果如下: survey.aspx中主要代码: <body>     <for ...

  7. java76-GUL单选按钮和复选按钮

    //单选按钮和复选按钮 //面向对象思想,面板,窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test11 ext ...

  8. 单选按钮必填会有红色选中提示吗_为什么单选按钮和复选框不能共存?

    以下内容由摹客团队翻译整理,仅供学习交流,摹客设计+协作一站式云平台,从产品.设计到开发,摹客来解决. 单选按钮和复选框长期以来一直都是容易导致用户困惑的组件.这两个组件通常用于相同的情景下,但看起来 ...

  9. radiogroup多选_单选按钮和多选按钮

    [最后结果显示在一个界面中,但是分开理解] 1.单选按钮(RadioGroup:是单选按钮组和RadioButton) 1)在activity_main.xml中控件是线性布局 xmlns:andro ...

最新文章

  1. 机器学习数据预处理之缺失值:最小值最大值填充
  2. 【转】mysql增量备份恢复实战企业案例
  3. vue2.0 练习项目-外卖APP(2)
  4. C++虚继承(二) --- C++ 对象的内存布局(上)(陈皓)
  5. linux c之出现warning: implicit declaration of function ‘exit’ [-Wimplicit-function-declaration]这个问题
  6. 大学计算机网络期末重点,中南大学计算机网络期末复习重点
  7. python selenium 进入新标签页_python 爬虫之selenium可视化爬虫
  8. #ifndef #define #endif 和#pragma once的区别
  9. 计算机对民间音乐,《中国民间歌曲》
  10. 全面提升AI语言理解能力,达摩院自研语言模型体系登顶6大权威榜单
  11. jmeter中变量的作用范围_Jmeter参数化方式总结
  12. pthreads v3下一些坑和需要注意的地方
  13. numpy.outer
  14. windows 系列机器查看tcp 配置
  15. 身神话继续遭受DDOS进攻,也遭受了雷同的陵犯
  16. docker代理设置ssl证书_家用主机 篇六:群晖Docker配置SSL证书实现https安全访问
  17. 多聚赖氨酸大鼠血清白蛋白纳米粒|微囊藻毒素小麦麦清白蛋白纳米粒|雌三醇乳清白蛋白纳米粒Estriol-whey protein
  18. 如何设计一个可用的web容器
  19. 毕业设计 Stm32云平台的智能病房监控系统
  20. 【cocos2d-x入门实战】微信飞机大战之八:自定义敌机精灵

热门文章

  1. 傅占杰:VR体验与产品营销的本质
  2. 艾为电子年盈利1亿元:同比增速大幅下滑,科创板IPO暂时中止
  3. Cyan Worlds开源《Myst Online: Uru Live》
  4. Eclipse无法查看java源码
  5. 关于Git,你真的学会了吗?
  6. 联想Y410P在Ubuntu系统下开关机及插耳机破音“啪啪”的解决办法
  7. win8不能调节屏幕亮度解决方法
  8. 【愚公系列】2023年03月 .NET CORE工具案例-基于AntiXssUF的跨脚本XSS中间件
  9. 图像处理开源软件代码网站汇总(提供下载链接)
  10. Ufida U8v10.1 安装到sqlserver2008R2 故障转移集群