首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个QRadioButton错误

多个QRadioButton错误
EN

Stack Overflow用户
提问于 2018-04-19 18:22:15
回答 1查看 124关注 0票数 0

我正在使用PyQt5创建一个程序。我创建了3个单选按钮,但是当我选中第一个按钮和之后的第二个按钮时。程序将运行连接到这些按钮的两个功能。我如何让它只运行连接到该按钮的函数。谢谢。

代码语言:javascript
复制
def __init__(self):
    super(Program, self).__init__()
    self.ui = Ui_APIManager()
    self.ui.setupUi(self)
    self.show()
    self.ui.add_btn.toggled.connect(self.start)
    self.ui.check_btn.toggled.connect(self.start)
    self.ui.delete_btn.toggled.connect(self.start)

def start(self):
    if self.ui.add_btn.isChecked():
        self.ui.third_lbl.setEnabled(True)
        self.ui.first_lbl.setText('Tool name')
        self.ui.second_lbl.setText('ID')
        self.ui.third_lbl.setText('Username')
        self.ui.action_btn.clicked.connect(self.add_user)

    elif self.ui.check_btn.isChecked():
        self.ui.first_lbl.setText('Type of search')
        self.ui.second_lbl.setText('Keyword')
        self.ui.third_lbl.setEnabled(False)
        self.ui.action_btn.clicked.connect(self.check_user)

    elif self.ui.delete_btn.isChecked():
        self.ui.first_lbl.setText('Type of search')
        self.ui.second_lbl.setText('Keyword')
        self.ui.third_lbl.setEnabled(False)
        self.ui.action_btn.clicked.connect(self.delete_user)
EN

回答 1

Stack Overflow用户

发布于 2018-04-19 19:56:53

Qt信号可以有多个插槽连接到它们。每次单击按钮时,start函数都会向action_button.clicked信号添加另一个连接。

您需要先断开任何现有插槽与信号的连接,才能实现所需的行为。通过调用self.ui.action_btndisconnect()函数,您可以一次断开所有与它的连接。

与其尝试重新分配已创建的GUI元素的角色,不如创建包含每个复选框状态的元素并在它们之间切换的单独小部件。您可能会发现QStackedWidget很有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49918670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档