Python меню из списка в Ткинтере - PullRequest
1 голос
/ 17 января 2020

Здесь у меня есть список, который я получаю от курсора разъема MYSQL. У меня нет проблем с получением данных. Но я заинтересован в создании меню с использованием функции OptionMenu tkinter с полученными данными. Вот то, что я пытаюсь

from tkinter import *

r = Tk()
name_  = StringVar()

name = [('John',),('Jimmy',),('Smith',),('Rosel',)]  
#Here I am directly giving the list, but this the output which I  get from cursor of MYSQL

l=[]
for i in range(len(name)-1):
   l.append(name[i][0])

print(l)

t = tuple(l)

name_.set('Select Student')

option = OptionMenu(r,name_,l)
option.pack()

Но я не думаю, что это помогает, поскольку я получаю весь список, напечатанный в виде единой опции. Пожалуйста, помогите мне .....

Ответы [ 3 ]

1 голос
/ 17 января 2020

Вам нужно использовать оператор python *, чтобы расширить список при вызове OptionMenu (например: *l):

option = OptionMenu(r, name_, *l)
0 голосов
/ 17 января 2020

Надеюсь, это поможет:

     from tkinter import *
     from tkinter import ttk
     root = Tk()
     root.title("mysql")
     root.geometry(("400x400"))
     class Mysql:
         def __init__(self,parent):
             self.parent = parent
             self.options = [('John',),('Jimmy',),('Smith',),('Dave',)]
             self.var = StringVar(self.parent)
             self.var.set("Select Student")
             self.option = ttk.OptionMenu(self.parent,self.var,*self.options)
             self.option.pack()
     Mysql(root)
     root.mainloop()
0 голосов
/ 17 января 2020

Пожалуйста, дайте мне знать, если это не то, что вы хотите:

python 3

    from tkinter import *
    from tkinter import ttk
    root = Tk()
    root.title("mysql")
    root.geometry("400x400")
    var = StringVar(root)
    var.set("select student")
    option = ttk.OptionMenu(root,var,'','John','Jimmy','Smith','Rosel')
    option["width"] = 20
    option.pack()
    root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...