如何将tkinter中的OptionMenu放置到指定Frame中?
嘿,其实你一开始的思路就没毛病!把OptionMenu放到指定Frame里的核心操作,就是把OptionMenu的父组件参数从原来的master改成你目标的Frame(比如frame1),不过要先确保这个Frame已经被正确创建并添加到主窗口里哦。
完整可运行示例代码
import tkinter as tk # 初始化主窗口 master = tk.Tk() master.title("OptionMenu in Frame") # 第一步:创建并布局目标Frame(这步很重要,别漏了!) frame1 = tk.Frame(master, padx=15, pady=15, bg="#e8e8e8") frame1.pack(padx=20, pady=20) # 也可以用grid,根据你的整体布局来选 # 第二步:创建OptionMenu并绑定到frame1 variable = tk.StringVar(master) variable.set("one") # 设置默认选中的选项 w = tk.OptionMenu(frame1, variable, "one", "two", "three") w.grid(row=4, column=1) # 在frame1内部用grid布局定位 master.mainloop()
关键注意点
- 一定要先把
frame1添加到主窗口(用pack()/grid()),不然这个Frame本身都不会显示,里面的OptionMenu自然也看不到 - OptionMenu的第一个参数就是它的父容器,换成
frame1就会把它嵌入到这个Frame里,你的第一版修改其实是正确的,大概率是漏了Frame的布局步骤才出问题 - Frame内部的控件布局(比如这里的
grid(row=4, column=1))完全独立于主窗口的布局,不用担心冲突
内容的提问来源于stack exchange,提问作者Axioms
相关产品推荐
相关产品推荐

