簡體   English   中英

如何使用從我的SQLite數據庫中檢索的數據填充tkinter下拉框?

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

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