i使用Python 3,Tkinter和MySQL连接器。我想用我尝试这样做的SQL数据制作一个optionMenu对象:
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()
代码必须在我的" classe"表上显示带有" nom"列表的下拉菜单,但我的选项菜单在我的for循环中,并且执行了很多时间,就像我在classe表中有记录一样。<<<<<<<<<<<<<<
如果我有3个记录,则有3个选项菜单,带有3个不同的值。
o试图将我的OptionMenu从我的循环中排除:
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()
,但我只得到了我插入的最后一张唱片。我不能将我的循环循环放入以下Shema OptionMenu(parent, default variable, var)
您得到了出于这个原因没有期望的东西:
您仅创建一个标签,然后在每次迭代中覆盖它(有关类变量v
的相同(。因此,到最后,这是逻辑,您只能得到一行(因为再次,您只有一个标签小部件(。
除此之外,您还必须关心小部件以及将它们放置的位置:例如,我相信mongroup3
必须是要创建的行的父部件,与您所做的不同。