簡體   English   中英

Tkinter標簽的消毒清單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM