-1
我仍然在研究這個相同的程序,並且做了一點點改進。該應用程序的類型找到字典,但所有的信息是不可靠的。這是我到目前爲止的一張照片。無法從詞典中填充python tkinter Combobox
我是新來的Python和新的節目。如果任何人都可以幫我解決我的代碼中的任何一部分問題,我可以傾聽並學習!這是我的代碼到目前爲止。
from tkinter import *
from tkinter import ttk
#Experience Per Level Dictionary
import csv
exptable = csv.DictReader(open('C:/Users/LemDog/Desktop/WinPython 3.5.1.2/python-3.5.1.amd64/Scripts/Ragnarok Stuff/Ragnarok Base Level.csv'))
result = {}
for row in exptable: # should actually be called `row`
if row['Current Level'] not in result:
result[row['Current Level']] = row['Total EXP']
#All the math behind the GetKills Button
#Creates Tkinter Window
root = Tk()
root.title("How many Kills?")
mainframe = ttk.Frame(root, padding="3 3 70 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
expper = StringVar()
currentlevel = StringVar()
desiredlevel = StringVar()
killamount = StringVar()
#OptionMenu From Dictionary
combobox = ttk.Combobox(mainframe)
combobox.grid(column=3, row=1)
combobox.set(result)
for item in [result]:
combobox.insert(END, result)
#Creats Current Level Text Entry Field
currentlevel = ttk.Entry(mainframe, width=10, textvariable=currentlevel)
currentlevel.grid(column=2, row=1, sticky=(W, E))
#Creates Exp Per Kill Text Entry Field
expper_entry = ttk.Entry(mainframe, width=10, textvariable=expper)
expper_entry.grid(column=2, row=2, sticky=(W, E))
#Creats Desired Level Text Entry Field
desiredlevel_entry = ttk.Entry(mainframe, width = 10, textvariable=desiredlevel)
desiredlevel_entry.grid(column=2, row=3, sticky=(W, E))
#Creates Button and Print Label for How Many Kills.
ttk.Label(mainframe, textvariable=killamount).grid(column=2, row=4, sticky=(W, E))
ttk.Button(mainframe, text="How many!?", command=getkills).grid(column=1, row=4, sticky=W)
ttk.Label(mainframe, text="Current Level").grid(column=1, row=1, sticky=W)
ttk.Label(mainframe, text="Experience Per Kill").grid(column=1, row=2, sticky=E)
ttk.Label(mainframe, text="Desired Level").grid(column=1, row=3, sticky=W)
for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
root.mainloop()
任何幫助,在所有的讚賞!感謝您提前嘗試!
因爲我們沒有數據文件,它會幫助,如果你可以通過使用一個小的硬編碼列表模擬數據值。 –
如果你看[組合框的文檔](http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/ttk-Combobox.html),你會看到'.set()'方法只是設置當前的內容,所以你看到字典的字符串表示。我想你想在組合框構造函數中使用'values = result' –