[英]How do i populate tkinter drop-down box with new data everytime i pressed “refresh”?
[英]How do I populate tkinter drop-down box with data retrieved from my SQLite database?
基本上我有一個電影院預訂系統,里面有一個數據庫,可以存儲電影的內容和時間等等。我已經設法以我希望使用的格式打印內容但是,我不確定如何使用這些數據的術語使用tkinter下拉菜單,它單獨顯示下面顯示的行。
import sqlite3 as lite
conn = lite.connect('Logindetails.db')
with conn:
conn.row_factory = lite.Row
cursor = conn.cursor()
title = raw_input("Name of tile: ")
query = "SELECT * FROM Viewings WHERE Title=?"
cursor.execute(query, (title,))
rows = cursor.fetchall()
for row in rows:
data = "%s %s %s %s %s" % (row["Id"], row["Title"], row["Date"], row["Time"], row["Duration"])
print data
這是我檢索其所需數據的代碼。 這是它的輸出。
Name of tile: Frozen
1 Frozen 06/15 11:35 95
3 Frozen 06/18 11:35 95
4 Frozen 06/30 11:25 95
5 Frozen 07/02 11:45 95
6 Frozen 07/05 12:30 95
我已經編寫了我的tkinter項目的基礎,只是不確定如何操作這些數據並將其導入到一個下拉框中,每個數據集可以單獨選擇。
您可以在代碼中的某處定義movieList
數組,然后將for循環中創建的字符串追加到movieList
數組:
movieList = []
...
for row in rows:
data = "%s %s %s %s %s" % (row["Id"], row["Title"], row["Date"], row["Time"], row["Duration"])
movieList.append(data)
print data
(作為旁注,您可以省略row["Id"]
和row["Duration"]
字段,因為前者對您的用戶並不重要,后者是多余的)
使用OptionMenu
小部件構建下拉菜單很容易; 這里是一個帶有硬編碼值的最小例子,你的movieList
將在前面提到的for
循環中動態構造:
from Tkinter import *
movieList = ["1 Frozen 06/15 11:35 95", "3 Frozen 06/18 11:35 95",
"4 Frozen 06/30 11:25 95", "5 Frozen 07/02 11:45 95",
"6 Frozen 07/05 12:30 95"]
master = Tk()
option = StringVar(master)
option.set(movieList[0]) # Set the first value to be the default option
w = apply(OptionMenu, (master, option) + tuple(movieList))
w.pack()
mainloop()
您可以通過調用get()
方法get()
所選的選項:
option.get()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.