![](/img/trans.png)
[英]How can i give different variable-names to comboboxes in a for-loop using tkinter (python 3)
[英]How to assign textvariable to different variable names within a loop - Python - Tkinter
碼:
for i in range(len(self.models_chosen)):
self.test.insert(i, vars())
self.model_entry_dict_text["entry" + str(i)] = ttk.Label(
self.entry_frame,
text="Quantity of: " + self.models_chosen[i]
)
self.model_entry_dict_text["entry" + str(i)].pack(fill=X)
self.model_entry_dict["entry" + str(i)] = Spinbox(self.entry_frame, from_=0, to=2000,)
self.model_entry_dict["entry" + str(i)].pack(fill=X)
self.models_entry_box_created = True
self.old_models = self.models_chosen
我所做的是在for in range
內制作了一個字典-
self.model_entry_dict["entry" + str(i)]
因此它將是:
self.model_entry_dict["entry1"] = Spinbox(self..)
self.model_entry_dict["entry2"] = Spinbox(self..)
self.model_entry_dict["entry3"] = Spinbox(self..)
...
取決於范圍。
對於我創建的每個spinboxes
,我都需要它們內部的值(這就是為什么我將text variable選項作為參數的一部分的原因)-問題是我不知道如何為它使用不同的變量每個spinbox
由於創建到spinboxes
在一個循環中被創建。
說我把self.textvariable
放進去,所有的spinboxes
都具有相同的值。 我想擁有的一個例子是
textvariable = self.variable+i
所以:
self.variable1 to be the text variable for self.model_entry_dict["entry1"]
self.variable2 to be the text variable for self.model_entry_dict["entry2"]
... etc.
然后我要做的是:
self.variable1.get()
-它應該拿到的是里面的數字spinbox
但是我認為不可能在變量名中添加字符串/整數。
在這里,您可以看到我在列表框中選擇的模型的圖像,然后按“更新”按鈕,它生成了3個Spinbox,現在我想檢索Spinbox中的數字(無論是存儲在3個不同的變量中還是在列表中) / dictionary / array):
http://gyazo.com/a7c9847ec16b16fb443082066b42f890
我正在尋找的示例(使用上面提供的圖像):
test1 = self.variable1.get()
print(test1)
output:
1800
test2 = self.variable2.get()
print(test2)
output:
300
test3 = self.variable3.get()
print(test3)
output:
30
很抱歉,這似乎有點令人困惑,我開始使用Python一周左右,所以它可能很草率。 我確信可能有更好的方法可以做到這一點,也可以有不同的方法。
您無需為每個變量命名。 只需使用一個列表:
self.vars = []
for i in range(len(self.models_chosen)):
var = StringVar()
self.vars.append(var)
...
self.model_entry_dict["entry" + str(i)].config(textvariable=var)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.