заполнить выпадающий список с помощью sql python / tkinter - PullRequest
0 голосов
/ 29 апреля 2018

Я использую Python 3, Tkinter и MySQL разъем. Я хочу создать объект optionMenu с моими данными sql, которые я пытался сделать так:

     mongroupe3 = LabelFrame(app, text='nouvelle div 3').pack()
     Label(mongroupe3, text='groupe3').pack()
     select_Classes = ("select id,nom from classe")
     cursor.execute(select_Classes)
     result = cursor.fetchall()
     for row in result:
        id = row[0]
        nom = row[1]
        mongroupe3 = Label(app, text=nom).pack()
        v = StringVar()
        v.set(nom)
        om = OptionMenu(mongroupe3, v, nom)
        om.pack()

код должен показывать выпадающее меню со списком «nom» в моей таблице «classe», но мое меню опций находится в цикле for и выполняется столько раз, сколько записей в моей таблице classe.

для примера, если у меня есть 3 записи, я получил 3 меню параметров с 3 различными значениями.

o попытался вывести мое optionMenu из цикла for следующим образом:

     mongroupe3 = LabelFrame(app, text='nouvelle div 3').pack()
     Label(mongroupe3, text='groupe3').pack()
     select_Classes = ("select id,nom from classe")
     cursor.execute(select_Classes)
     result = cursor.fetchall()
     for row in result:
        id = row[0]
        nom = row[1]
        mongroupe3 = Label(app, text=nom).pack()
        v = StringVar()
        v.set(nom)
     om = OptionMenu(mongroupe3, v, nom)
     om.pack()

но я получил только последнюю запись, которую я вставил на свой стол. я не могу положить цикл для внутри моего OptionMenu причину следующей Shema OptionMenu(parent, default variable, var)

1 Ответ

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

Вы получили то, чего не ожидали по этой причине:

Вы создаете только одну метку и переопределяете ее в каждой итерации (то же самое для переменной класса v). Таким образом, в конце концов, это логика, вы получаете только одну строку (потому что, опять же, у вас есть только один виджет меток).

Кроме того, вам нужно заботиться о виджетах и ​​месте их размещения: например, я считаю, mongroup3 должен быть родительским виджетом строки, которую вы хотите создать, в отличие от того, что вы сделали.

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