将值附加到TTK Combobox ['values'],而无需重新加载组合框

时间:2018-07-30 09:01:15

标签: python python-3.x tkinter ttk

我需要在不重新加载整个内容的情况下将值添加到ttk.combobox。将值添加到GUI上时,不应重新加载GUI上的当前选择。

我需要这样的东西:

for string in listofstrings:
    if string not in self.combobox1['values']:
        self.combobox1['values'].append(string)

当我这样尝试时,出现此错误:

  

AttributeError:“元组”对象没有属性“ append”

(符合预期)。

预先感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

怎么样:

if string not in self.combobox1['values']:
    self.combobox1['values'] = (*self.combobox1['values'], string)

或者:

if string not in self.combobox1['values']:
    self.combobox1['values'] += (string,)

答案 1 :(得分:0)

我在寻找一种将项目追加到组合框的方法时遇到了这篇文章。我正在从电子表格加载值。我创建了一个列表,然后在循环中添加了项目。循环结束后,所有值都分配给组合框。我希望这对某人有帮助。

Combobox1.delete(0, END)
wb = load_workbook("types.xlsx")
ws = wb.active
r = 1
string=['']

for row in ws.iter_rows(min_row=1, min_col=1):
    val=str(ws.cell(row=r, column=1).value)
    string.append(val)
    r = r + 1

Combobox1['values'] = string
wb.close()
相关问题