如何使用 CSV 文件中的元素填充 QComboBox

How to fill a QComboBox with elements from a CSV file

我在 QTDesigner QDialog 表单上有一个组合框,我想用 CSV 文件中一列的内容填充它。我调用了组合框的调用并构建了从 CSV 中提取值的函数,但组合框不会更新信息。

self.optStates.currentIndexChanged.connect(self.selectState)
def selectState(self):
    with open('States.csv') as csvDataFile:
        csvReader = csv.DictReader(csvDataFile, delimiter=',')
        states = []
        states.extend([row['state'] for row in csvReader if row['state']])

其他代码已被省略,但对话框的其余部分工作正常。

currentIndexChanged 是一个信号,当您选择 QComboBox 的选项时触发,并且由于您的 QComboBox 中没有项目,它永远不会触发,除了没有在这种情况下需要使用它。您必须做的是使用 addItems() 方法

将其填充到构造函数中
def __init__(self, another_arguments):
    # 
    # some code
    # 
    with open('States.csv') as csvDataFile:
        csvReader = csv.DictReader(csvDataFile, delimiter=',')
        states = [row['state'] for row in csvReader if row['state']]
        self.optStates.addItems(states)