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

时间:2018-01-21 18:57:16

标签: python csv pyqt pyqt5 qcombobox

我在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']])

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

1 个答案:

答案 0 :(得分:0)

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)