pyqt5 combobox.clear() 造成不清楚的问题

pyqt5 combobox.clear() causing unclear issue

我有一个显示 2 个值的组合框 a | b 这些取自 csv 文件, 正常实施没有问题,请参阅此 post 了解更多详细信息:

但是,我有一个按钮可以将一行附加到 csv,然后我希望使用新的 csv 内容更新组合框。所以,显然我首先清除了已经加载到组合框中的值。

在下面的代码中,问题似乎是 self.comboSiteCodes.clear(),如果我删除它,代码会成功运行,尽管它会将更新的 csv 附加到组合框列表的末尾,从而产生重复。

我哪里做错了?

def add_job(self):
    code, good = QInputDialog.getText(self, '\n', 'Input Site Code')
    if good:
        folder, good = QInputDialog.getText(self, '\n', 'Input Folder Prefix')
        if good:
            with open("data/job_list.csv", "a") as myfile:
                myfile.write("\n" + code + ',' + folder)

    # self.update_site_folder_combo()

    self.comboSiteCodes.clear()

    job_list = pd.read_csv(filepath_or_buffer="data/job_list.csv", header=0)
    tuples = job_list[['SITECODE', 'FOLDER']]
    for row in tuples.itertuples():
        self.comboSiteCodes.addItem('{} | {}'.format(row.FOLDER, row.SITECODE), (row.FOLDER, row.SITECODE))
    self.comboSiteCodes.currentIndexChanged.connect(self.comboSiteCodes_index_changed)

总结一下,问题不在combobox.clear()

您应该检查您的组合框是否连接到任何类型的函数。如果是这种情况,您应该在清除组合框之前和之后切换该连接

self.comboSiteCodes.disconnect(...)
self.comboSiteCodes.clear()
...
self.comboSiteCodes.connect(...)