当前位置: 首页 > news >正文

asp做微网站深圳网站推广公司

asp做微网站,深圳网站推广公司,黄石做网站的,wordpress dux缩略图一、简介 QButtonGroup是PyQt5库中的一个组件,主要用于组织和管理一组按钮。通过QButtonGroup,可以方便地实现单选框或多选框功能,统一处理按钮的信号,并且可以为按钮分组设定ID以进行识别。 1、原始工程 from PyQt5.Qt import …

一、简介

QButtonGroup是PyQt5库中的一个组件,主要用于组织和管理一组按钮。通过QButtonGroup,可以方便地实现单选框或多选框功能,统一处理按钮的信号,并且可以为按钮分组设定ID以进行识别。

1、原始工程


from PyQt5.Qt import *
import sysapp = QApplication(sys.argv)window = QWidget()
window.setWindowTitle("按钮组的使用")
window.resize(500, 500)# 创建四个单选按钮
rb_male = QRadioButton("男", window)
rb_female = QRadioButton("女", window)
rb_male.move(100, 100)
rb_female.move(100, 150)rb_big = QRadioButton("大", window)
rb_small = QRadioButton("小", window)
rb_big.move(300, 100)
rb_small.move(300, 150)window.show()
sys.exit(app.exec_())

测试可发现,四个按钮都互斥,不符合使用逻辑。

2、解决方案

  1. 添加共同的父控件,此时同一个父控件内的QRadioButton互斥,但此种方式比较局限,且父控件是实体控件,不推荐。
  2. QButtonGroup方式,提供 一个抽象的按钮容器, 可以将多个按钮划分为一组,不具备可视化的效果,一般放的都是可以被检查的按钮,推荐使用。

二、功能介绍

1、创建和添加按钮

  1. api
api功能
addButton(QAbstractButton, id = -1)向按钮组中添加按钮
注:
  • 如果id为-1,则将为该按钮分配一个id。自动分配的ID保证为负数,从-2开始。
  • 如果要分配自己的ID,请使用正值以避免冲突
  1. 应用场景

    向按钮组中添加按钮, 并选择性设置ID。

  2. 代码

    from PyQt5.Qt import *
    import sysapp = QApplication(sys.argv)window = QWidget()
    window.setWindowTitle("按钮组的使用")
    window.resize(500, 500)#*******QButtonGroup创建和添加按钮 *******开始
    # 创建四个单选按钮
    rb_male = QRadioButton("男", window)
    rb_female = QRadioButton("女", window)
    rb_male.move(100, 100)
    rb_female.move(100, 150)rb_big = QRadioButton("大", window)
    rb_small = QRadioButton("小", window)
    rb_big.move(300, 100)
    rb_small.move(300, 150)# 创建QButtonGroup
    sex_group = QButtonGroup(window)
    sex_group.addButton(rb_male, 1)
    sex_group.addButton(rb_female, 2)size_group = QButtonGroup(window)
    size_group.addButton(rb_big, 1)
    size_group.addButton(rb_small, 2)#*******QButtonGroup创建和添加按钮 *******结束window.show()
    sys.exit(app.exec_())
    
  3. 测试结果

    在这里插入图片描述

2、查看按钮

  1. api

    api功能
    buttons()查看所有按钮组中的按钮
    button(ID)根据ID获取对应按钮, 没有则返回None
    checkedButton()获取选中的那个按钮
  2. 应用场景

    获取指定条件的按钮

  3. 修改代码

    
    from PyQt5.Qt import *
    import sysapp = QApplication(sys.argv)window = QWidget()
    window.setWindowTitle("按钮组的使用")
    window.resize(500, 500)#*******QButtonGroup创建和添加按钮 *******开始
    # 创建四个单选按钮
    rb_male = QRadioButton("男", window)
    rb_female = QRadioButton("女", window)
    rb_male.move(100, 100)
    rb_female.move(100, 150)
    rb_female.setChecked(True)rb_big = QRadioButton("大", window)
    rb_small = QRadioButton("小", window)
    rb_big.move(300, 100)
    rb_small.move(300, 150)# 创建QButtonGroup
    sex_group = QButtonGroup(window)
    sex_group.addButton(rb_male, 1)
    sex_group.addButton(rb_female, 2)size_group = QButtonGroup(window)
    size_group.addButton(rb_big, 1)
    size_group.addButton(rb_small, 2)#*******QButtonGroup创建和添加按钮 *******结束#*******查看按钮*******开始print("查看 sex_group 中所有按钮:\n{}".format(sex_group.buttons()))
    print("查看 sex_group 中id为2的按钮:\n{}".format(sex_group.button(2)))
    print("查看 sex_group 中选中的按钮:\n{}".format(sex_group.checkedButton()))#*******查看按钮*******结束window.show()
    sys.exit(app.exec_())
  4. 测试结果

    在这里插入图片描述

3、移除按钮

  1. api

    api功能
    removeButton(QAbstractButton)移除指定按钮
  2. 应用场景

    移除指定按钮,只是从抽象关系上移除按钮。

  3. 修改代码

    
    from PyQt5.Qt import *
    import sysapp = QApplication(sys.argv)window = QWidget()
    window.setWindowTitle("按钮组的使用")
    window.resize(500, 500)#*******QButtonGroup创建和添加按钮 *******开始
    # 创建四个单选按钮
    rb_male = QRadioButton("男", window)
    rb_female = QRadioButton("女", window)
    rb_male.move(100, 100)
    rb_female.move(100, 150)
    rb_female.setChecked(True)rb_big = QRadioButton("大", window)
    rb_small = QRadioButton("小", window)
    rb_big.move(300, 100)
    rb_small.move(300, 150)# 创建QButtonGroup
    sex_group = QButtonGroup(window)
    sex_group.addButton(rb_male, 1)
    sex_group.addButton(rb_female, 2)size_group = QButtonGroup(window)
    size_group.addButton(rb_big, 1)
    size_group.addButton(rb_small, 2)#*******QButtonGroup创建和添加按钮 *******结束#*******查看按钮*******开始# print("查看 sex_group 中所有按钮:\n{}".format(sex_group.buttons()))
    # print("查看 sex_group 中id为2的按钮:\n{}".format(sex_group.button(2)))
    # print("查看 sex_group 中选中的按钮:\n{}".format(sex_group.checkedButton()))#*******查看按钮*******结束#*******移除按钮*******开始
    sex_group.removeButton(rb_male)
    print("查看 sex_group 中所有按钮:\n{}".format(sex_group.buttons()))#*******移除按钮*******结束window.show()
    sys.exit(app.exec_())
  4. 测试结果

    在这里插入图片描述

    打印发现只有一个按钮了。

4、QButtonGroup-ID操作

  1. api

    api功能
    setId(QAbstractButton,int)设置按钮id
    id(QAbstractButton)返回按钮对应的ID,如果不存在此按钮,则返回-1
    checkedId()选中按钮的ID,如果没有选中的按钮则返回-1
  2. 应用场景

    设置ID, 方便识别用户选项

  3. 修改代码,取消 size_group 添加button时设置的id,使用上述api操作

    
    from PyQt5.Qt import *
    import sysapp = QApplication(sys.argv)window = QWidget()
    window.setWindowTitle("按钮组的使用")
    window.resize(500, 500)#*******QButtonGroup创建和添加按钮 *******开始
    # 创建四个单选按钮
    rb_male = QRadioButton("男", window)
    rb_female = QRadioButton("女", window)
    rb_male.move(100, 100)
    rb_female.move(100, 150)
    rb_female.setChecked(True)rb_big = QRadioButton("大", window)
    rb_small = QRadioButton("小", window)
    rb_big.move(300, 100)
    rb_small.move(300, 150)# 创建QButtonGroup
    sex_group = QButtonGroup(window)
    sex_group.addButton(rb_male, 1)
    sex_group.addButton(rb_female, 2)size_group = QButtonGroup(window)
    size_group.addButton(rb_big)
    size_group.addButton(rb_small)#*******QButtonGroup创建和添加按钮 *******结束#*******查看按钮*******开始# print("查看 sex_group 中所有按钮:\n{}".format(sex_group.buttons()))
    # print("查看 sex_group 中id为2的按钮:\n{}".format(sex_group.button(2)))
    # print("查看 sex_group 中选中的按钮:\n{}".format(sex_group.checkedButton()))#*******查看按钮*******结束#*******移除按钮*******开始
    # sex_group.removeButton(rb_male)
    # print("查看 sex_group 中所有按钮:\n{}".format(sex_group.buttons()))#*******移除按钮*******结束#*******id操作*******开始
    size_group.setId(rb_big, 1)
    size_group.setId(rb_small, 2)# 打印按钮id
    print("rb_big按钮id:{}".format(size_group.id(rb_big)))# 打印被选中的按钮id
    print("打印被选中的按钮id:{}".format(size_group.checkedId()))#*******id操作*******结束window.show()
    sys.exit(app.exec_())
  4. 测试结果

    在这里插入图片描述

5、独占操作(也就是按钮是否互斥)

  1. api

    api功能
    setExclusive(bool)设置QButtonGroup中的按钮是否具有独占性(互斥选择)
    exclusive()返回当前QButtonGroup的独占状态
  2. 应用场景

    统一设置按钮组中的按钮是否是独占(选择互斥)

  3. 修改代码

    
    from PyQt5.Qt import *
    import sysapp = QApplication(sys.argv)window = QWidget()
    window.setWindowTitle("按钮组的使用")
    window.resize(500, 500)#*******QButtonGroup创建和添加按钮 *******开始
    # 创建四个单选按钮
    rb_male = QRadioButton("男", window)
    rb_female = QRadioButton("女", window)
    rb_male.move(100, 100)
    rb_female.move(100, 150)
    rb_female.setChecked(True)rb_big = QRadioButton("大", window)
    rb_small = QRadioButton("小", window)
    rb_big.move(300, 100)
    rb_small.move(300, 150)# 创建QButtonGroup
    sex_group = QButtonGroup(window)
    sex_group.addButton(rb_male, 1)
    sex_group.addButton(rb_female, 2)size_group = QButtonGroup(window)
    size_group.addButton(rb_big)
    size_group.addButton(rb_small)#*******QButtonGroup创建和添加按钮 *******结束#*******查看按钮*******开始# print("查看 sex_group 中所有按钮:\n{}".format(sex_group.buttons()))
    # print("查看 sex_group 中id为2的按钮:\n{}".format(sex_group.button(2)))
    # print("查看 sex_group 中选中的按钮:\n{}".format(sex_group.checkedButton()))#*******查看按钮*******结束#*******移除按钮*******开始
    # sex_group.removeButton(rb_male)
    # print("查看 sex_group 中所有按钮:\n{}".format(sex_group.buttons()))#*******移除按钮*******结束#*******id操作*******开始
    # size_group.setId(rb_big, 1)
    # size_group.setId(rb_small, 2)# 打印按钮id
    # print("rb_big按钮id:{}".format(size_group.id(rb_big)))# 打印被选中的按钮id
    # print("打印被选中的按钮id:{}".format(size_group.checkedId()))#*******id操作*******结束#*******独占状态*******开始
    print("sex_group的独占性为:{}".format(sex_group.exclusive()))
    # 设置独占性 为 非独占
    sex_group.setExclusive(False)
    print("修改后,sex_group的独占性为:{}".format(sex_group.exclusive()))#*******独占状态*******结束window.show()
    sys.exit(app.exec_())
  4. 测试结果

    在这里插入图片描述


三、信号

  1. api

    api功能
    buttonClicked(int/QAbstractButton)当按钮组中的按钮被点击时, 发射此信号
    buttonPressed(int/QAbstractButton)当按钮组中的按钮被按下时, 发射此信号
    buttonReleased(int/QAbstractButton)当按钮组中的按钮被释放时, 发射此信号
    buttonToggled(QAbstractButton/int, bool)当按钮组中的按钮被切换状态时, 发射此信号
  2. 应用场景

    监听用户的按钮点击事件,执行相应的逻辑操作。

  3. 修改代码

    
    from PyQt5.Qt import *
    import sysapp = QApplication(sys.argv)window = QWidget()
    window.setWindowTitle("按钮组的使用")
    window.resize(500, 500)#*******QButtonGroup创建和添加按钮 *******开始
    # 创建四个单选按钮
    rb_male = QRadioButton("男", window)
    rb_female = QRadioButton("女", window)
    rb_male.move(100, 100)
    rb_female.move(100, 150)
    rb_female.setChecked(True)rb_big = QRadioButton("大", window)
    rb_small = QRadioButton("小", window)
    rb_big.move(300, 100)
    rb_small.move(300, 150)# 创建QButtonGroup
    sex_group = QButtonGroup(window)
    sex_group.addButton(rb_male, 1)
    sex_group.addButton(rb_female, 2)size_group = QButtonGroup(window)
    size_group.addButton(rb_big)
    size_group.addButton(rb_small)#*******QButtonGroup创建和添加按钮 *******结束#*******查看按钮*******开始# print("查看 sex_group 中所有按钮:\n{}".format(sex_group.buttons()))
    # print("查看 sex_group 中id为2的按钮:\n{}".format(sex_group.button(2)))
    # print("查看 sex_group 中选中的按钮:\n{}".format(sex_group.checkedButton()))#*******查看按钮*******结束#*******移除按钮*******开始
    # sex_group.removeButton(rb_male)
    # print("查看 sex_group 中所有按钮:\n{}".format(sex_group.buttons()))#*******移除按钮*******结束#*******id操作*******开始
    # size_group.setId(rb_big, 1)
    # size_group.setId(rb_small, 2)# 打印按钮id
    # print("rb_big按钮id:{}".format(size_group.id(rb_big)))# 打印被选中的按钮id
    # print("打印被选中的按钮id:{}".format(size_group.checkedId()))#*******id操作*******结束#*******独占状态*******开始
    # print("sex_group的独占性为:{}".format(sex_group.exclusive()))
    # 设置独占性 为 非独占
    # sex_group.setExclusive(False)
    # print("修改后,sex_group的独占性为:{}".format(sex_group.exclusive()))#*******独占状态*******结束#*******信号*******开始
    def on_button_clicked(button):print(f"Button clicked: {button.text()}")sex_group.buttonClicked.connect(on_button_clicked)#*******信号*******结束window.show()
    sys.exit(app.exec_())
  4. 测试结果

    在这里插入图片描述

http://www.tj-hxxt.cn/news/100690.html

相关文章:

  • 苏州专门网站伟哥seo博客
  • 注册越南网站vn网址链接生成器
  • 做自适应网站信息流优化师简历怎么写
  • 做网站选哪个语言手机版谷歌浏览器入口
  • 深圳网站建设亿联时代搜索引擎网址有哪些
  • 网站设计论文开题报告大专网络营销专业好不好
  • 空中花园做网站的公司武汉本地seo
  • 济阳网站建设seo推广怎么样
  • css div网站模板下载免费的h5制作网站
  • 学校官方网站阿里云云服务平台
  • 建一个网站式系统微信营销的功能
  • 电子商务网站环境建设整合营销方案
  • wordpress 公众号采集百度智能小程序怎么优化排名
  • 中国基建人才培训网证书查询优化排名推广技术网站
  • 找人做辅助的网站谷歌商店paypal下载官网
  • wordpress能开发商城网站泰安网站seo推广
  • 本地化吃喝玩乐平台网站可以做吗搜索引擎优化时营销关键词
  • 怎么判断网站有没有做百度商桥怎么seo快速排名
  • 网站流量软件信息流广告的特点
  • 用dw做的网页怎么连到网站上培训seo
  • 做b网站网站优化公司认准乐云seo
  • 视频网站后台网站优化推广哪家好
  • 做网站中怎么设置单张图片国内最新新闻热点事件
  • wordpress页面都在右边百度快照怎么优化排名
  • 购物网站的目的和意义seo网站诊断分析报告
  • 公司用的网站用个人备案可以吗福州网站优化公司
  • 163邮箱注册优化网站seo
  • 网络公司网站做的不错的公众号推广一个6元
  • 微信网站开发语言株洲seo快速排名
  • 做ps找图的网站有哪些在线工具