как использовать для циклов внутри виджета OptionMenu - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть следующая опцияMenu om = OptionMenu(mygroup3, v, name).pack() и циклы for:

for row in result: 
id = row[0]
name = row[1]

делает следующий код:

from tkinter import *
from connectdb import *
app = Tk()
global mygroup3
mygroup3 = LabelFrame(app, text='new div').pack()
Label(mygroup3, text='group3').pack()
select_Class = ("select id,name from class")
cursor.execute(select_Class)
result = cursor.fetchall()
for row in result:
    id = row[0]
    nom = row[1]
    mygroup3 = Label(app, text=nom).pack()
    v = StringVar()
    v.set(nom)
    om = OptionMenu(mygroup3, v, nom)
    om.pack()

код создает столько же OptionMenu, сколько записей в моей таблице, потому что мой виджет optionMenu включен в цикл for, но когда я помещаю свое OptionMenu за пределы, у меня регистрируются только последние записи. Итак, как я могу использовать OptionMenu, чтобы показать все мои записи?

1 Ответ

0 голосов
/ 30 апреля 2018

Я нашел решение, которое мне просто необходимо было преобразовать в результат цикла for в строку с mylist.append(str(row[1])) и обрезать результат списка с помощью *mylist в OptionMenu

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...