python - Qcombox框选择项目时如何隐藏Qcheckbox?
问题描述
from PyQt5 import QtCore, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(762, 590)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.checkBox = QtWidgets.QCheckBox('box', self.centralwidget)
self.checkBox.setGeometry(QtCore.QRect(150, 75, 181, 20))
self.checkBox.setObjectName("checkBox")
self.comboBox = QtWidgets.QComboBox(self.centralwidget)
self.comboBox.setGeometry(QtCore.QRect(150,160,100,20))
self.comboBox.addItem("Yes")
self.comboBox.addItem("No")
self.comboBox.setObjectName("comboBox")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "11"))
MainWindow.show()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
我创建了一个带有“是”和“否”的组合框,当我在组合框中选择“否”时,我想隐藏复选框,有人可以帮忙吗?
我试图创建一个函数,当 self.comboBox.currentText == "Yes" 时,运行 self.checkBox.hide(),但它没有工作......
解决方案
如果选择已更改,您必须使用currentTextChanged
通知您的信号向您发送新文本,那么您应该只将其与文本进行比较,并与方法一起满足您的要求。QComboBox
setVisible()
self.comboBox.currentTextChanged.connect(self.handle_current_text_changed)
def handle_current_text_changed(self, text):
self.checkBox.setVisible(text == "Yes")
推荐阅读
- apache-kafka - 无法从 flume hdfs sink 创建的 Avro 数据中获取记录
- html - 强制 HTML 表格中的行在不使用 colspan 的情况下上升到表格边框
- angular - Angular HttpClient 选择了错误的获取重载
- postgresql - 双精度类型的输入语法无效:查找最近的经度/纬度城市时为“null”
- python - Google WALS Trainer Division by Zero?
- arrays - 使用数组重新组织数据
- javascript - 在 JavaScript 中使用 postMessage() 的复杂性
- aws-lambda - DynamoDB 与 MySQL 与 Amazon Lambda
- javascript - 关闭子窗口时主窗口引用变为空
- r - R studio - 使用 grepl() 抓取特定字符并在数据框中填充新列