- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 QCheckBox (deselect_checkbox
),在选中时,将另一个 QCheckBox (first_checkbox
) 及其自身设置为 False
。然而,它只是每隔一段时间才有效,我不知道为什么。这是代码:
def deselect_func():
if self.dockwidget.deselect_checkbox.isChecked():
self.dockwidget.first_checkbox.setChecked(False)
self.dockwidget.deselect_checkbox.setChecked(False)
self.dockwidget.deselect_checkbox.stateChanged.connect(deselect_func)
如何让该函数在每次选中 deselect_checkbox
时运行?
使用 QGIS 2.16.0 和 Qt Designer 4.8.5。
最佳答案
您混淆了“检查状态”和“已检查”。
前者可以有三种状态:Unchecked、PartiallyChecked 和 Checked,而后者只是 True/False。如果您调用 setChecked()
而不是 setCheckState()
,则不会注册状态更改。因此,在下一次单击时,将不会发出 stateChanged
信号(因为未检测到任何更改)。
要解决此问题,您的代码必须如下所示:
def deselect_func():
if self.dockwidget.deselect_checkbox.isChecked():
self.dockwidget.first_checkbox.setChecked(False)
self.dockwidget.deselect_checkbox.setChecked(False)
self.dockwidget.deselect_checkbox.toggled.connect(deselect_func)
或者像这样:
def deselect_func():
if self.dockwidget.deselect_checkbox.checkState() == QtCore.Qt.Checked:
self.dockwidget.first_checkbox.setCheckState(QtCore.Qt.Unchecked)
self.dockwidget.deselect_checkbox.setCheckState(QtCore.Qt.Unchecked)
self.dockwidget.deselect_checkbox.stateChanged.connect(deselect_func)
但请注意,这意味着 deselect_checkbox
永远不会显示为选中状态,因为它总是立即取消选中。这真的是你的意图吗?
关于python - QCheckBox 仅在检查两次时执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38700666/
我的问题与这篇文章非常相似,Python PyQt - Checkbox to uncheck all other checkboxes .但是,我试图在选中主复选框时选中所有其他框,同时,如果独立选
我使用 PyQt5 在 Designer 中创建了 3 个复选框。我想要这样的逻辑流程: 如果选中了 2 个复选框中的任何一个,请禁用最后一个复选框。取消选中某个复选框后,应重新启用禁用的复选框,依此
我是 Qt 和 GUI 编程的新手,不确定在参数列表不匹配时将信号连接到插槽的最佳方式。我有一个用 Qt Designer 制作的设置对话框,它包含一系列 QCheckBoxes 和 QLineEdi
QCheckBox::toggled(bool) 和 QCheckBox::clicked(bool) 信号之间有什么实际区别吗?两者都有相同的签名,我连接哪个有关系吗? 最佳答案 toggled 信
我会错过某些东西吗,还是真的没有(就绪/内置)方式以编程方式更改QCheckBox的状态而不发出“void stateChanged(int state)”信号? 无论是否调用了“void setCh
有没有一种方法可以像使用 QLabel 一样在 QCheckBox 中换行文本? label = QLabel( QString.fromUtf8('long text in here')) labe
有什么方法可以检测用户是否单击了QCheckBox上的标签?如果是这样,我想执行某些操作,并且检查状态不应更改为已检查或未检查。 到目前为止我找不到任何信号/方法.. 最佳答案 事件过滤器就是答案。
我有一个非常具体的问题,所以我会尽量说清楚。 我有一个包含QTableWidget的QTabWidget,我的QTableWidget的每一行都是通过读取文件动态创建的。 如您所见,当我创建一行时,我
QCheckbox 是否可以有比 Qt::Checked 和 Qt::Unchecked 更多的状态?我有一个 QTreeWidget,如果一个项目被选中,我希望父级显示一个已填充的复选框(某些状态如
我想让一个名为“Show Captions”的 QCheckBox 在选中第一个复选框时禁用另一个名为“Show captions if no title”的 QCheckBox,但我的问题是如何在用
我想知道是否有办法在 pyqt“WITHOUT”触发事件的复选框(QCheckBox)上禁用(setCheckState)?因此,这只是显示更改,复选框现在未选中,但没有触发我连接到的方法。感谢您的帮
我有一个 QCheckBox (deselect_checkbox),在选中时,将另一个 QCheckBox (first_checkbox) 及其自身设置为 False。然而,它只是每隔一段时间才有
我在网格布局中有一个 QCheckbox 定义如下: self.isSubfactorCheckbox = QtGui.QCheckBox('Is &subfactor', self) 默认情况下,复
如何增加 QCheckBox 控件的复选框大小而不是文本大小? 谢谢。 最佳答案 Jérôme 给了你很好的建议。我仅举进一步的例子。 QCheckBox::indicator { widt
我正在尝试仅更改 QCheckBox 的颜色指示矩形。 目前我成功绘制了矩形的右边和底线。 可能我在这里做错了什么。 这是我的代码: CheckBoxWidget.cpp CheckBoxWidget
我正在 PyQt5 中工作,希望能够在按键上选中/取消选中 QCheckBox,就像使用 QPushButton 一样。我检查了文档和 Google,但找不到实现此目的的方法。 最佳答案 您必须覆盖
我试图通过 QCheckBox 单击信号传递两个单独的变量:其按下后的状态及其在列表中的索引。 例如,这是我的代码: # pip install pyqt5 from PyQt5.QtMultimed
QCheckBox 小部件的左侧是复选框,右侧是描述(如下所示): 有谁知道有什么方法可以让描述在左边,盒子在右边? 最佳答案 您可以使用QWidget::setLayoutDirection(Qt:
我正在尝试在我的 UI 中插入一个复选框,该复选框可以根据其选中状态将来自另一个类的 bool 变量设置为 true 或 false。问题是没有发出信号。 该变量在我的第一个类 (renderarea
选中复选框时,以下代码不起作用。无论复选框是否被选中,它都会跳转到“else”语句。 void MainWindow::runButtonClicked() {
我是一名优秀的程序员,十分优秀!