如何仅在激活两个组合框时启用按钮

Posted

技术标签:

【中文标题】如何仅在激活两个组合框时启用按钮【英文标题】:How to enable a button only when two comboboxes have been activated 【发布时间】:2020-03-03 18:11:13 【问题描述】:

我有两个组合框,这是我尝试仅在选择两个框中的选项时启用按钮。

但是,当我只选择一个组合框时,按钮会自动启用。

    if self.page2.comboBox2.activated and self.page2.comboBox.activated:
        self.page2.viewbutton.setEnabled(True)
    else:
        self.page2.viewbutton.setEnabled(False)

【问题讨论】:

使用print()查看变量中的内容以及self.page2.comboBox2.activated and self.page2.comboBox.activated获得的内容 【参考方案1】:

您的代码将无法工作,因为activated 属性是一个信号对象,它的计算结果始终为True。如果您使用的是 your other question 中的组合框,则需要检查 current index 以查看用户是否选择了有效选项:

if (self.page2.comboBox2.currentIndex() > 0 and
    self.page2.comboBox.currentIndex() > 0):
    self.page2.viewbutton.setEnabled(True)
else:
    self.page2.viewbutton.setEnabled(False)

也就是说,如果当前索引为零,仍然会显示“选择产品”消息。

【讨论】:

以上是关于如何仅在激活两个组合框时启用按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何仅在可见时激活组合模型?

将两个选项按钮与单个组合框链接,用于不同的行源[关闭]

如何以编程方式将垂直滚动条添加到组合框

单击按钮时如何删除组合框组件 flash as3

编辑组合框时访问表单不会更新,必须移动到下一条记录

Extjs 3.4 ComboBox:首次加载组合框时如何预选一条记录?