首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在pyqt5中选择按钮并打开其他按钮并重置其他按钮

在PyQt5中,可以使用QButtonGroup来实现选择按钮并打开其他按钮并重置其他按钮的功能。

首先,创建一个QButtonGroup对象,并将所有的按钮添加到该组中。然后,使用setExclusive(True)方法来设置按钮组为互斥模式,即只能选择一个按钮。接下来,使用buttonClicked信号连接一个槽函数,该槽函数用于处理按钮的点击事件。

在槽函数中,可以使用checkedButton()方法获取当前选中的按钮,并使用setEnabled(True)方法打开其他按钮。同时,可以使用按钮组的buttons()方法获取所有按钮的列表,并使用setEnabled(False)方法重置其他按钮。

下面是一个示例代码:

代码语言:txt
复制
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QRadioButton, QButtonGroup
from PyQt5.QtCore import Qt

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        layout = QVBoxLayout()

        # 创建按钮组
        buttonGroup = QButtonGroup()

        # 创建按钮并添加到按钮组
        button1 = QRadioButton('按钮1')
        button2 = QRadioButton('按钮2')
        button3 = QRadioButton('按钮3')

        buttonGroup.addButton(button1)
        buttonGroup.addButton(button2)
        buttonGroup.addButton(button3)

        # 设置按钮组为互斥模式
        buttonGroup.setExclusive(True)

        # 连接信号和槽函数
        buttonGroup.buttonClicked.connect(self.onButtonClicked)

        layout.addWidget(button1)
        layout.addWidget(button2)
        layout.addWidget(button3)

        self.setLayout(layout)
        self.setWindowTitle('选择按钮示例')
        self.show()

    def onButtonClicked(self, button):
        # 获取当前选中的按钮
        selectedButton = button

        # 打开其他按钮
        for btn in button.group().buttons():
            if btn != selectedButton:
                btn.setEnabled(True)

        # 重置其他按钮
        for btn in button.group().buttons():
            if btn != selectedButton:
                btn.setEnabled(False)

if __name__ == '__main__':
    app = QApplication([])
    ex = Example()
    app.exec_()

在这个示例中,创建了三个单选按钮,并将它们添加到按钮组中。当选择一个按钮时,其他按钮将被禁用,只有选中的按钮可用。

这个功能在许多应用场景中都有用,例如在设置界面中选择不同的选项时,只能选择一个选项,其他选项将被禁用。

腾讯云相关产品和产品介绍链接地址:

  • QButtonGroup类文档:https://doc.qt.io/qt-5/qbuttongroup.html
  • QRadioButton类文档:https://doc.qt.io/qt-5/qradiobutton.html
  • QVBoxLayout类文档:https://doc.qt.io/qt-5/qvboxlayout.html
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PyQt5 技巧篇-按钮隐藏保留位置,设置按钮的可见度,设置按钮透明度

设置按钮可见度为0 每种控件都有3种设置可见度为0的方法,下面来拿按钮的来举例了。...设置按钮透明度,保留原位置 透明和不可见可不一样,透明是一种颜色。...如果想追求完美的话,可以设置透明的同时,解除那个控件绑定的事件。...还提供一种思路,比如,我设置布局里每个按钮自己单独包裹一层布局,可以设置布局的最小宽度和高度,这样标准的隐藏的按钮看不到按钮了,但是仍然还保留着位置的,因为这里还有一个有最小值的布局给占着位置呢!...实例展示 如图,我想隐藏左边的录制脚本按钮。 左边的这组按钮嵌套在一个横向布局里。 ? 这是设置可见度为0的效果,发现布局已经变了。 ?

3.2K20
  • 【Flutter】Flutter 拍照示例 ( 浮动按钮及点击事件 | 底部显示按钮组件 | 手势检测器组件 | 拍照获取当前拍摄照片 | 从相册中选择图片 )

    appBar: , // 设置页面主体元素组件 body: , // 创建浮动按钮 FloatingActionButton 组件 , 设置给 floatingActionButton...: () {} 括号的参数为空 , 返回值也为空 ; /// Signature of callbacks that have no arguments and return no data. typedef..., 可以是任何组件 , 如 Column ; 这里底部显示的是一个 Container 组件 , Container 组件内部包含了一个 Column 组件 ; /// 浮动按钮点击事件 /// 点击浮动按钮..., 弹出一个菜单 /// 菜单有两个按钮 , 分别是 拍照 / 选择图片 showModalBottomSheet( context: context, builder: (context.../// 点击浮动按钮 , 弹出一个菜单 /// 菜单有两个按钮 , 分别是 拍照 / 选择图片 showModalBottomSheet(

    1.5K30

    使用 Pyqt5 制作猜数游戏 GUI

    Working directory 填写 sample.ui磁盘的地址,我选择的位置是D:\QQPCMgr\Desktop\Pyui,这同时也是转化后的sample.py文件保存的地址。 ?...三、制作 ui 文件 我们打开 Designer,选择相应控件,将其拖到合适的位置,保存即可 ui 文件。...self.pushButton.clicked.connect() 是说,当你摁下按钮一,会运行 self.guess() 函数。同理,按钮二、按钮三分别对应退出和重置功能。...其他类型字符串会提示错误,标签一提示输入不合法,标签二提示随机数的范围,清空 lineEdit 的文本框,将 text 赋值为空字符串。 如果字符串不为空,继续执行接下来的程序。...重置游戏 reset() 函数,用来重置游戏。首先将实例变量设为 None,执行 self.random_num(),产生随机数,更新提示范围的左右界。接着清空标签一和标签二的文本内容。

    97030

    使用 Pyqt5 制作猜数游戏 GUI

    Working directory 填写 sample.ui磁盘的地址,我选择的位置是D:QQPCMgrDesktopPyui,这同时也是转化后的sample.py文件保存的地址。 ?...三、制作 ui 文件 我们打开 Designer,选择相应控件,将其拖到合适的位置,保存即可 ui 文件。...self.pushButton.clicked.connect() 是说,当你摁下按钮一,会运行 self.guess() 函数。同理,按钮二、按钮三分别对应退出和重置功能。...其他类型字符串会提示错误,标签一提示输入不合法,标签二提示随机数的范围,清空 lineEdit 的文本框,将 text 赋值为空字符串。 如果字符串不为空,继续执行接下来的程序。...重置游戏 reset() 函数,用来重置游戏。首先将实例变量设为 None,执行 self.random_num(),产生随机数,更新提示范围的左右界。接着清空标签一和标签二的文本内容。

    1.6K30

    Github项目推荐 | SC-FEGAN:基于GAN的人脸照片涂鸦编辑

    依赖项 tensorflow numpy Python3 PyQt5 opencv-python pyyaml 使用 首先,从Google drive 下载模型 基本用法是: mv /${HOME}/SC-FEGAN.ckpt....* /${HOME}/ckpt/ python3 demo.py 通过编辑 demo.yaml 文件选择GPU的数量(不支持多GPU)。...GUI按钮: Open Image :打开要编辑的图像并重置草图和颜色。 Mask :单击此按钮并在左侧查看器上绘制蒙版。 Sketches :单击此按钮并在左侧查看器上绘制素描线。...Color :单击此按钮绘制颜色线。 如果您第一次单击此按钮,则必须从调色板中选择颜色。 Palette :单击此按钮可更改颜色。 如果选择颜色,则单击“颜色”按钮进行更改。...草图区域绘制蒙版。 3. 单击“Arrange”按钮。 4. 蒙版区域上绘制颜色。 5. 单击“Complete”。 示例 面部编辑 ? 耳环编辑 ? 面部修复 ?

    2.8K40

    Github项目推荐 | SC-FEGAN:基于GAN的人脸照片涂鸦编辑

    依赖项 tensorflow numpy Python3 PyQt5 opencv-python pyyaml 使用 首先,从Google drive 下载模型 基本用法是: mv /${HOME}.../SC-FEGAN.ckpt.* /${HOME}/ckpt/ python3 demo.py 通过编辑 demo.yaml 文件选择GPU的数量(不支持多GPU)。...GUI按钮: Open Image :打开要编辑的图像并重置草图和颜色。 Mask :单击此按钮并在左侧查看器上绘制蒙版。 Sketches :单击此按钮并在左侧查看器上绘制素描线。...Color :单击此按钮绘制颜色线。 如果您第一次单击此按钮,则必须从调色板中选择颜色。 Palette :单击此按钮可更改颜色。 如果选择颜色,则单击“颜色”按钮进行更改。...草图区域绘制蒙版。 3. 单击“Arrange”按钮。 4. 蒙版区域上绘制颜色。 5. 单击“Complete”。 示例 面部编辑 ? 耳环编辑 ? 面部修复 ?

    1.9K10

    快速熟悉 PyQt5 与 Eric6 的极速 GUI 开发

    为了方便使用在正式开始之前我们先简单配置一下Eric6的项目工作区 配置Eric6 打开 Eric6 选择菜单栏 设置-首选项 左侧列表中选择项目-多重项目,点击右侧图标后选定硬盘的一个位置...简单配置后,让我们正式开始体验极速GUI开发 实例 建立项目 打开Eric6,菜单栏中选择项目-新建 项目属性对话框的项目名称输入Hello,你会发现右下方的OK按钮不可用。...点击项目文件夹后面的图标 在打开选择项目文件夹对话框右键点击空白处,弹出的菜单中选择新建-文件夹 更改新建文件夹的名称为Hello(一般与项目名称同),选中该文件夹后点击右下方的选择文件夹按钮...创建窗体 点击源代码标签右边的窗体标签,标签下面的空白处右键点击,弹出的菜单选择新建窗体 弹出新建窗体对话框,可以选择其它窗体类型,这里我们使用默认对话框类型,点击OK按钮 弹出的新建窗体保存对话框可以看到程序已将路径定位到项目文件夹下...,输入文件名后点击保存按钮 Eric6的窗体标签下可以看到程序已自动创建了HelloWindow.ui文件 设计窗体 点击上一步的保存按钮后,计算机会直接打开Qt设计师,自动将HelloWindow.ui

    2K20

    Python Qt GUI设计:将UI文件转换为Python文件的三种妙招(基础篇—2)

    该文件使用非常简单,可以通过命令将.ui文件转换成.py格式的文件,其他Python文件引用,也可以通过Eric 6进行手工转换。...主窗口左侧是主工具栏,主工具栏提供了项目文件编辑、窗体设计、程序调试、项目设置等各种功能按钮左侧主工具栏单击“Welcome(欢迎)”按钮后显示实例的界面。...”按钮后,工作区显示新建项目按钮和最近打开项目的列表。...单击“Examples(示例)”按钮后,工作区显示 Qt 自带的大量实例,选择某个实例就可以 Qt Creator 打开该项目源程序。...单击“Tutorials(教程)”按钮后,工作区显示各种视频教程,查看视频教程需要联网使用浏览器打开

    3.2K60

    Python – 编写可视化界面(Python+PyCharm+PyQt)

    2、开始 1)、打开PyCharm配置相关设置 打开PyCharm界面如下: 点击界面右下方的“Configure”下拉按钮选择“Settings”,如下所示: 打开如下设置界面...的安装路径环境变量!...,主要是界面添加了一个按钮(btn),一个编辑框(le),一个按钮响应函数(ShowDialog),其中ShowDialog响应函数打开了一个标准输入窗口,并将标准输入窗口中输入的值显示到编辑框...结果: 4、扩展 接下来做了一个更加复杂的例子,主要是模拟汇率的解算,界面主要如下所示: 其中主要涉及了按钮、编辑框、Label、布局等 , 与第一个例子写在了同一个文件,可点击一下链接下载...Ubuntu+python2.7环境下pyqt5的安装: ubuntu打开终端,直接输入: $sudo apt-get install python-pyqt5 即可,安装完成之后,直接在代码编辑页面

    2.6K20

    PyQt5安装与使用

    安装 此处略去 Python3 的安装,使用 pip 工具打开 CMD 进行安装: pip install pyqt5 pip install pyqt5-tools 其中第一个命令是安装 PyQt5...使用 点击 PyCharm 导航栏上的 Tools -> External Tools 打开上面配置的 QtDesigner 会自动打开绘制工具: 我们选择默认的,点击 OK,就得到一个初始的界面 其中...: 然后就会在当前目录下生成一个默认的同名 Py 文件: 要让 py 文件运行起来,我们需要添加一个 main 函数作为启动入口,刚才生成的 py 文件末尾加入以下代码引入相应的依赖即可: if _...入门 现在我们用上面的表单做这么一件事情,点击确定,弹窗提示“添加成功”,点击“重置”,清空表单的所有内容,所以我们要在 py 文件添加动态操作,整个逻辑比较简单,就是点击“确定”按钮时,获取到上面表单的填写内容...,在后台打印,并在前台弹窗添加成功,而点击“重置”时,清空表单的所有内容。

    1.9K00

    PyQt5开发环境搭建 1.2 简单的例子

    拖动Push Button 保存UI文件 编译ui文件 当前项目下文件列表 将ui文件编译成py文件 将ui文件和py文件拷贝到Eric6目录 使用Eric6创建项目 打开Eric6 编译ui文件 选择...Go to Slot对话框为组件的信号生成槽函数框架,复制函数名到Eirc6定义槽函数编写实现代码 (7)如果要修改窗体UI文件,需要回到Qt Creator进行修改 (8)将修改后的窗体UI文件拷贝回...将ui文件和py文件拷贝到Eric6目录 拷贝前   拷贝后 使用Eric6创建项目 打开Eric6 双击eric6图标 新建project 当前项目目录内容 编译ui文件 选择form...如果编辑过程只是修改了ui文件,没有修改资源文件,那么就不必用pyuic5命令来编译ui文件,直接把ui文件拷贝到Eric6项目目录,eric6用compile form命令编译ui文件就可以。...,因为还没放代码上去 关闭窗口 为按钮添加代码 进入Qt Creator,打开编辑框 左键选中按钮,点击右键,选择转到槽 选择click() 复制函数名 会弹出来FormHello.cpp窗口,

    1.4K10

    测试之路 pytest接口自动化框架扩展-GUI窗口

    分享出源码后的同时将我的思路一梳理出来。...好了,废话不多,昊料开始~ 引言 本期先从数据入口开始,扩展脚本初期就一直考虑,如何能不接触代码, 完完全全以界面的形式接收数据源,通过点击两个按钮,就可以实现上传需要解析的json文件,然后再点击一个按钮就去执行接口自动化脚本...最后把结果显示一个对话框。使用pyqt5一是有点大材小用,二是学习成本会有点高。所以我就选择了tkiner 于是从网上搜索相关tkinter的相关教程。总结一下我所学习到方法以及用法。...添加一个按钮画布 def onclick(): print("别点我!")...filename).resize((width, height)) im = ImageTk.PhotoImage(im) return im # 点击方法,点击后弹窗打开文件选择

    2.9K30

    苹果Mac重置SMC、NVRAM、PRAM的方法

    重置SMC SMC 系统管理控制器 重置系统管理控制器 (SMC) 可以解决某些与电源、电池和其他功能相关的问题。...包括比如电源按钮、USB 端口的电源;电池和充电;风扇和其他热能管理功能;指示灯或感应器,例如状态指示灯(睡眠状态、电池充电状态等)、突发移动感应器、环境光传感器和键盘背光;打开和合上笔记本电脑盖时的行为等等...如果 Mac 电脑发出启动声,您可以第二次启动声过后松开这些按键。 搭载 Apple T2 安全芯片的 Mac 电脑上,您可以 Apple 标志第二次出现消失后松开这些按键。...要重置 NVRAM,请先关闭固件密码。 如果重置了 NVRAM 和 PRAM, Mac 启动后,可能需要打开“系统偏好设置”调整已重置的任何设置,例如音量、显示屏分辨率、启动磁盘选择或时区。...如果 Mac 台式电脑而非笔记本电脑,并且每次关闭 Mac 断开 Mac 电源时,音量或时区等设置均会重置,则可能需要更换 Mac 的电池。

    22.8K30

    使用PyQt5实现图片查看器的示例代码

    一、前言 在学习 PyQt5 的过程我会不断地做一些小的 Demo,用于让自己能够更好地理解和学习,这次要做的就是一个图片查看器,主要功能包括打开图片、拖动图片、放大和缩小图片。...而要实现这一功能,可以用 QFileDialog 类来实现,该类里有一个 getOpenFileName() 方法,使用该方法能够打开本地路径选择符合文件要求格式的文件,例如使用“*.png”就支持打开所有...png 格式的图片文件,而不支持其他格式的文件。...,有时候会需要放大了观看图片的某些细节部分,因而需要实现放大和缩小图片的功能,所以做了两个按钮分别用于放大图片和缩小图片。... QPainter ,可以根据 QPainter 的坐标系进行各种变换,例如平移(translate)和变化(scale),这里就可以通过使用 scale() 方法实现放大和缩小图片。

    1.7K10

    Python 图形界面框架 PyQt5 使用指南!

    QtDisigner配置 Pycharm,依次打开 File – Settings – Tools – External Tools,点击 + Create Tool,配置如下: Name: QtDisigner...Pycharm,依次打开 File – Settings – Tools – External Tools,点击 + Create Tool,配置如下: Name: PyUIC Program :...Pycharm,依次打开 File – Settings – Tools – External Tools,点击 + Create Tool,配置如下: Name: PyRCC Program:...我们需要绑定槽函数,方法如下: Qt Designer右下角选择 信号/槽编辑器,点击+号新增 分别选择queryBtn及clearBtn,选择信号 clicked(), 接收者 Dialog 及槽...新增demo.py文件, MainDialog类定义了两个槽函数queryWeather()和clearText(),以便在界面文件Weather.ui定义的两个按钮(queryBtn 和clearBtn

    6.3K21

    Qt Designer快速入门(python GUI 可视化界面搭建)

    该文件使用起来非常简单,可以通过命令将.ui文件转换成.py格式的文件,其他Python文件引用;也可以像上节搭建环境一样,配置工具,直接操作,不过其本质,都是运行对应的工具转换程序实现的。...PyQt 5 Widget被分离出来,用来替代 Dialog,并将Widget放入了QtWidget模块库。...新建窗体 模板选择“Main Window”,创建一个主窗口,保存命名为firstMainWin.ui,如图所示,主窗口默认添加了菜单栏、工具栏和状态栏。...菜单栏中选择“窗体”→“预览”,或者按“Ctrl+R”快捷键,就可以看到窗口的预览效果了。 工具箱 可以从Buttons栏拖拽一个Push Button按钮到主窗体,如图所示。...将上节的一个按钮示例保存一下,用pycharm打开查看,显示内容如下: <?xml version=”1.0″ encoding=”UTF-8″?

    2.3K40

    Anaconda+PyQt5+PyCharm开发生成.exe可执行文件

    1.打开Anaconda Prompt终端界面 2.安装pyqt5 输入以下命令安装: pip install pyqt5 如果以上命令安装不成功的话使用镜像安装,执行命令: pip install -...1.首先打开UI设计工具designer Anaconda Prompt终端界面输入以下命令打开: designer 打开后界面 如图所示: 选择Main Window然后点击创建,结果如下图所示...鼠标选中控件左键按住不放拖动到Main Window即可。这里我们设计一个简单的界面,用户输入内容,点击打印按钮在下方显示用户输入的内容,如下图所示。...(4)点击加号按钮输入myprint(),然后点击OK即可。这里myprint()就是我们接下来要实现的按钮点击事件的槽函数。...保存到自己新建的工程文件夹,命名为ui,生成一个ui.ui文件。 然后开始配置PyCharm: 打开PyCharm新建一个工程,目录选择我们自己新建的工程目录。

    1.9K30
    领券