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

python做网站比php站长工具无忧

python做网站比php,站长工具无忧,网站建设到上线的步骤过程,做网站时背景音乐一、简介 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.hrbkazy.com/news/29801.html

相关文章:

  • 网站支持ipv6做哪些改造企业网站定制开发
  • 进入福建省建设干部培训中心网站广告海外推广
  • 百度快照手机版seo网络推广员招聘
  • 做图模板网站有哪些做个网页价格多少
  • 服装手机商城网站建设营销型网站建站推广
  • 做网站申请哪类商标自己如何开网站
  • 扁平化网站首页大数据营销推广精准粉
  • 美妆网站建设规划近期国际新闻20条
  • 宁波seo网站排名优化网页搜索引擎优化技术
  • 北京做网站哪家强目前推广软件
  • wordpress无法上传文件seo关键词排行优化教程
  • 网站建设维护岗位百度公司图片
  • 吉林网站建设设计苏州seo整站优化
  • 网站改了关键词内容营销策略有哪些
  • 湖南网站建设 系统站长工具排行榜
  • 尧都网站建设品牌推广专员
  • 电池网站建设 中企动力seo关键词怎么优化
  • 中小企业网站设计总结seo建站系统
  • 营销型网站建设的好处百度指数查询
  • 4399老版网页优化疫情二十条措施
  • 网站代码怎么放百度开户是什么意思
  • 网站建设学什么网站宣传推广方案
  • 河南网站推广优化公司电脑培训班有哪些科目
  • 网站公安备案有必要吗大连百度关键词排名
  • 南宁商城网站建设搜客
  • 价值30万的网站建设百度广告联盟赚广告费
  • 谷城县城乡建设局网站关于网站推广
  • 免费开发游戏的软件武汉seo结算
  • wordpress 插件下载站口碑营销案例及分析
  • 柳州 网站开发百度地图推广电话