首页 > 解决方案 > 使用 Tkinter OptionMenu 小部件的数据库查询

问题描述

我正在尝试学习如何使用 MenuOption 选项查询我的数据库。当用户单击 MenuOption 按钮时,它会正确显示多个选项,但我不确定如何让它查询数据库以查找与数据库表命名相同的选项。

我已经尝试了许多不同的方法来使用我一直在阅读的在线信息,但似乎还没有任何效果。

我必须在变量方法中遗漏一些东西来调用作为数据库中表的选项名称。

一旦它从选定的表中提取数据,我就需要用数据填充一个小部件,我认为 ComboBox 最适合这个?

任何帮助将非常感激。

代码:

def window_2():
    window_2 = tkinter.Tk()
    image2 = 'window2.gif'
    bg_image2 = tkinter.PhotoImage(file=image2)
    w = 1024
    h = 612
    ws = window_2.winfo_screenwidth()
    hs = window_2.winfo_screenheight()
    x = (ws/2) - (w/2)
    y = (hs/2) - (h/2)
    window_2.geometry('%dx%d+%d+%d' % (w, h, x, y))
    panel2 =tkinter.Label(window_2, image=bg_image2)
    panel2.pack(side='top', fill='both', expand='yes')
    panel2.image = bg_image2
    window_2.title('Recipes')
    window_2.wm_iconbitmap('recipe.ico')

    def select():
    # optional
        selection = var.get()
        c.execute('SELECT * FROM Appetizers') # THIS ONLY PRINT THAT TABLE "Appetizer" BECAUSE IT IS NAMED, I NEED TO REPLACE THAT WITH THE VARIABLE FOR THE SELECTION.
        data = c.fetchall()
        print(data)

    var = tkinter.StringVar(window_2)
    var.set('Menu')

    choices = [
        'Appetizers',
        'Beef',
        'Bread',
        'Cake',
        'Chicken',
        'Chilli',
        'Curry',
        'Desert',
        'Drinks',
        'Egg',
        'Fish',
        'Pasta',
        'Pork',
        'Potato',
        'Rice',
        'Salad',
        'Sandwich',
        'Sauce',
        'Sea Food',
        'Slow Cooker',
        'Soup',
        'Stew',
        'Tofu',
        'Vegetables']

    option = tkinter.OptionMenu(window_2, var, *choices)
    option.place(x=215, y=120)

    button = tkinter.Button(window_2, text="check value selected", command=select)
    button.pack
    button.place(x=370, y=120)

标签: pythonpython-3.xtkinter

解决方案


推荐阅读