如何在PyQt5中动态更新QComboBox?

时间:2018-01-14 07:55:53

标签: python pyqt5 qcombobox

例如,第一个组合框选项1到10,另一个组合框也是1到10,当我在第一个选择2时,我需要第二个组合框显示选项3到10,我的意思是第二个组合框的值应该大于first.so我应该如何在PyQt5中?

1 个答案:

答案 0 :(得分:0)

您必须首先使用__init__方法初始化组合框

def __init__(self):
    #Write your __init__ body here
    self.comboBox1 = QComboBox()
    self.comboBox2 = QComboBox()

然后您可以设置第一个组合框1-10的项目

for i in range(1,11):
    self.comboBox1.addItem(str(i))

您可以使用currentTextChanged信号来更新comboBox2

self.comboBox1.currentTextChanged.connect(self.updateComboBox2)

currentTextChanged信号将新选择的文本值传递给方法

所以updateComboBox2方法

def updateComboBox2(self, newValue):
     ''' New Value is the changed value of comboBox1
         Do whatever you want to do with it here
         for eg. '''
     if newValue == 2:
         self.comboBox2.clear()        #This will remove all previous items
         for j in range(3,11):
              self.comboBox2.addItem(str(j))