首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OptionMenu()没有在tkinter中显示

OptionMenu()没有在tkinter中显示
EN

Stack Overflow用户
提问于 2021-03-02 18:09:38
回答 2查看 26关注 0票数 0

我有下面的代码来尝试在Tkinter中显示下拉菜单

代码语言:javascript
复制
import tkinter as tk
from tkinter import *

Options=['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']

root = tk.Tk()


name_var = tk.StringVar()
passw_var = tk.StringVar()
tries_var = tk.StringVar()
nrco_var = tk.StringVar(root)
nrcrn1_var = tk.StringVar()
nrcrn2_var = tk.StringVar()
nrcrn3_var = tk.StringVar()
nrcrn4_var = tk.StringVar()
nrcrn5_var = tk.StringVar()
nrcrn6_var = tk.StringVar()
nrcrn7_var = tk.StringVar()
nrcrn8_var = tk.StringVar()
nrcrn9_var = tk.StringVar()
nrcrn10_var = tk.StringVar()

nrco_var.set(Options[0])
w=OptionMenu(root, nrco_var, *Options)


name_label = tk.Label(root, text='Username', font=('calibre', 10, 'bold'))
name_entry = tk.Entry(root, textvariable=name_var, font=('calibre', 10, 'normal'))
passw_label = tk.Label(root, text='Password', font=('calibre', 10, 'bold'))
passw_entry = tk.Entry(root, textvariable=passw_var, font=('calibre', 10, 'normal'), show='*')
tries_label = tk.Label(root, text='Number Of Tries', font=('calibre', 10, 'bold'))
tries_entry = tk.Entry(root, textvariable=tries_var, font=('calibre', 10, 'normal'))
nrco_label = tk.Label(root, text='Number Of C To Register', font=('calibre', 10, 'bold'))
nrcrn1_label = tk.Label(root, text='CRN1', font=('calibre', 10, 'bold'))
nrcrn1_entry = tk.Entry(root, textvariable=nrcrn1_var, font=('calibre', 10, 'normal'))
nrcrn2_label = tk.Label(root, text='CRN2', font=('calibre', 10, 'bold'))
nrcrn2_entry = tk.Entry(root, textvariable=nrcrn2_var, font=('calibre', 10, 'normal'))
nrcrn3_label = tk.Label(root, text='CRN3', font=('calibre', 10, 'bold'))
nrcrn3_entry = tk.Entry(root, textvariable=nrcrn3_var, font=('calibre', 10, 'normal'))
nrcrn4_label = tk.Label(root, text='CRN4', font=('calibre', 10, 'bold'))
nrcrn4_entry = tk.Entry(root, textvariable=nrcrn4_var, font=('calibre', 10, 'normal'))
nrcrn5_label = tk.Label(root, text='CRN5', font=('calibre', 10, 'bold'))
nrcrn5_entry = tk.Entry(root, textvariable=nrcrn5_var, font=('calibre', 10, 'normal'))
nrcrn6_label = tk.Label(root, text='CRN6', font=('calibre', 10, 'bold'))
nrcrn6_entry = tk.Entry(root, textvariable=nrcrn6_var, font=('calibre', 10, 'normal'))
nrcrn7_label = tk.Label(root, text='CRN7', font=('calibre', 10, 'bold'))
nrcrn7_entry = tk.Entry(root, textvariable=nrcrn7_var, font=('calibre', 10, 'normal'))
nrcrn8_label = tk.Label(root, text='CRN8', font=('calibre', 10, 'bold'))
nrcrn8_entry = tk.Entry(root, textvariable=nrcrn8_var, font=('calibre', 10, 'normal'))
nrcrn9_label = tk.Label(root, text='CRN9', font=('calibre', 10, 'bold'))
nrcrn9_entry = tk.Entry(root, textvariable=nrcrn9_var, font=('calibre', 10, 'normal'))
nrcrn10_label = tk.Label(root, text='CRN10', font=('calibre', 10, 'bold'))
nrcrn10_entry = tk.Entry(root, textvariable=nrcrn10_var, font=('calibre', 10, 'normal'))


name_label.grid(row=0, column=0)
name_entry.grid(row=0, column=1)
passw_label.grid(row=1, column=0)
passw_entry.grid(row=1, column=1)
tries_label.grid(row=2, column=0)
tries_entry.grid(row=2, column=1)
nrco_label.grid(row=3, column=0)
nrcrn1_label.grid(row=4, column=0)
nrcrn1_entry.grid(row=4, column=1)
nrcrn2_label.grid(row=5, column=0)
nrcrn2_entry.grid(row=5, column=1)
nrcrn3_label.grid(row=0, column=2)
nrcrn3_entry.grid(row=0, column=3)
nrcrn4_label.grid(row=1, column=2)
nrcrn4_entry.grid(row=1, column=3)
nrcrn5_label.grid(row=2, column=2)
nrcrn5_entry.grid(row=2, column=3)
nrcrn6_label.grid(row=3, column=2)
nrcrn6_entry.grid(row=3, column=3)
nrcrn7_label.grid(row=4, column=2)
nrcrn7_entry.grid(row=4, column=3)
nrcrn8_label.grid(row=5, column=2)
nrcrn8_entry.grid(row=5, column=3)
nrcrn9_label.grid(row=0, column=4)
nrcrn9_entry.grid(row=0, column=5)
nrcrn10_label.grid(row=1, column=4)
nrcrn10_entry.grid(row=1, column=5)
sub_btn = tk.Button(root, text='Submit', command=automation)
sub_btn.grid(row=2, column=5)

root.mainloop()

我只得到“C的数目”,它旁边有一个空格,我还有其他正常显示的条目(其他是普通的输入网格,而不是下拉菜单)。

我也考虑过使用w.pack(),但我得到了一个错误(由于手动设置了其他条目的位置,我猜):

self.tk.call( _tkinter.TclError:无法在内部使用几何管理器网格)。已经有奴隶由pack来管理

然而,据我所读到的关于pack()的文章,我看不出菜单没有出现是怎么回事。

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-02 18:41:24

你必须使用:

代码语言:javascript
复制
w.grid(row=3,column=1)

在单亲内部,您不能在pack()grid()之间混用。我认为错误在于,您只使用w.grid(),没有任何行或列规范。

票数 1
EN

Stack Overflow用户

发布于 2021-03-02 18:41:51

我在代码之后添加了这个代码来添加nrco_label。

代码语言:javascript
复制
w.grid(row=3,column=1)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66444833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档