[英]Sanitizing list for Tkinter label
我正在嘗試將一個簡單的名稱生成器作為一個項目來構建,並且已經可以正常工作,但是它無法正確輸出,但我得到的輸出是這樣的:
{NameA}{NameB}NameC NameD{NameE}
雖然我知道它們存儲在這樣的列表中的事實:
['Name A', 'NameB', 'NameC', 'NameD', 'NameE']
這是完整的代碼:
import tkinter as tk
import random
printout = []
def generate():
for _ in range(var1.get()):
C = random.randrange(6)
if C == 0:
printout.append(random.choice(Prefix))
elif 1 <= C <= 2:
printout.append(random.choice(Prefix)+random.choice(Suffix))
elif 3 <= C <= 5:
printout.append(random.choice(Prefix)+" "+random.choice(Prefix)+random.choice(Suffix))
var.set(printout)
print(printout)
root = tk.Tk()
root.title("Simple GUI")
root.geometry("200x200")
var = tk.StringVar()
app = tk.Frame(root)
app.grid()
list1 = [1, 5, 10, 50]
var1 = tk.IntVar(app)
var1.set(1)
drop = tk.OptionMenu(root,var1,*list1)
drop.grid()
label = tk.Label(app, text = "How many results:")
label.grid()
button1 = tk.Button(app, text = "Generate!", command=generate)
button1.grid()
label2= tk.Label(app, textvariable=var)
label2.grid()
with open('D:/My Documents/prefix.txt') as f:
Prefix = [line.rstrip('\n') for line in f]
with open('D:/My Documents/suffix.txt') as r:
Suffix = [line.rstrip('\n') for line in r]
root.mainloop()
我找不到任何人在網上遇到這個問題,所以我不確定發生了什么。
您在輸出中看到的花括號是Tkinter試圖將列表打印為字符串的結果。 在將列表傳遞給var.set
之前,應將其明確轉換為字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.