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

QButtonGroup 的继承图:

b21cc05a6666ea7f8c93d5c398eeb025.png

QButtonGroup 的描述:

b4282c7b6ef2a0a7716551bb0715eb2e.png

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

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

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

QButtonGroup 的继承:

它继承自QObjecct 类

QButtonGroup 的功能:

d1af77cb9f4442671759f9f4e9e324ae.png

添加按钮:

244cc92e77326686ece5a66c0fe94db9.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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

查看组中的按钮:

274cf2bcf37ce89255bf14d65ef69cfc.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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 来查看,

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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的按钮

查看组中被选中的按钮:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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

移除按钮:

a03322593bc11305a59b1f5d58d97921.png

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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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:

bab5c58999fe9d506182c298d38b677d.png

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

也可以用方法来设置。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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

独占设置:

67f7f2be179490f47a40ab4d8e1557d0.png

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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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 的信号:

b2a32385dc37335cc4d69835485dc52b.png

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

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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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_())

传出的是按钮

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

a17ff0bc265bc40550e6d7d7639dc9eb.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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() 就可以:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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 使用的!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值