【发布时间】:2021-08-19 20:26:21
【问题描述】:
我想在检查某些复选框时过滤 PyQt5 QCombobox 中的项目。
例子:
samplelist=["a1","a2","a3","b1","b2","b3"] 是 QCombobox comboBox 的项目列表,我有两个复选框 checkBoxa 和 checkBoxb。如果
-
checkboxa选中和checkboxb未选中:comboBox有项目["a1", "a2", "a3"] -
checkboxa未选中,checkboxb已选中:comboBox有项目["b1", "b2", "b3"] -
checkboxa未选中,checkboxb未选中:comboBox为空 -
checkboxa已检查,checkboxb已检查:comboBox具有samplelist
有谁知道如何将checkboxa 和checkbox 连接到comboBox 以实现所述结果?
最小示例(复选框未连接到组合框)
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class ExampleWindow(QDialog):
def __init__(self,parent=None):
super(ExampleWindow,self).__init__(parent)
mainLayout=QtWidgets.QGridLayout()
samplelist=["a1","a2","a3","b1","b2","b3"]
# Create combobox and add items.
self.comboBox = QComboBox()
self.comboBox.addItems(samplelist)
#Create checkboxes
self.checkBoxa = QCheckBox("Select a")
self.checkBoxb = QCheckBox("Select b")
mainLayout.addWidget(self.comboBox,1,0,1,2)
mainLayout.addWidget(self.checkBoxa,0,0,1,1)
mainLayout.addWidget(self.checkBoxb,0,1,1,1)
self.setLayout(mainLayout)
if __name__ == "__main__":
app = QApplication(sys.argv)
mainWin = ExampleWindow()
mainWin.show()
sys.exit( app.exec_() )
【问题讨论】:
标签: python pyqt5 qcombobox qcheckbox