gpt4 book ai didi

python - Qt.CheckState.Checked != 2 和 Qt.CheckState.Checked != 0

转载 作者:行者123 更新时间:2023-12-03 08:06:35 24 4
gpt4 key购买 nike

PyQt6 文档说 Qt.CheckState.Unchecked == 0Qt.CheckState.Checked == 2

我写了一个小程序来测试这一点,但结果完全不同。

程序代码如下:

from PyQt6.QtCore import Qt
from PyQt6.QtWidgets import QApplication, QMainWindow, QCheckBox


class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()

self.setWindowTitle("My App")

self.widget = QCheckBox("CB")
self.widget.setCheckState(Qt.CheckState.Checked)
self.widget.stateChanged.connect(self.print_state)

self.setCentralWidget(self.widget)

def print_state(self, state):
print(state)
print(state == Qt.CheckState.Unchecked)


if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec()

但是当我单击复选框时,会显示以下内容:

0
False
2
False
0
False
2
False

为什么?

最佳答案

问题是您正在比较 int(stateChanged 信号发送的值)和 enum(Qt.CheckState.Unchecked),因此无法直接比较。解决方案是将整数转换为枚举:

def print_state(self, state):
print(Qt.CheckState(state) == Qt.CheckState.Unchecked)

关于python - Qt.CheckState.Checked != 2 和 Qt.CheckState.Checked != 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72161415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com