为什么我不能在 Python Tkinter 上移动我的下拉列表
Why cant i move my drop-down list on Python Ktinker
我想将下拉菜单移到左上角。
但是当我尝试 padx 和 pady 时什么也没有发生。
global text
self.text = tk.Text(root, bg='black', foreground="white", height="15")
self.text.pack(padx=0, pady=75)
self.text.delete('1.0', tk.END)
self.text.insert(tk.END, "Opps, not yet connect OR no files to be read....")
self.variable = StringVar(root)
self.variable.set("Temperature") # default value
self.w = OptionMenu(root, self.variable, "Temperature", "Mazda", "three")
self.w.pack()
我用 place()
而不是 pack()
解决了它。
因为默认元素居中,您需要 anchor='w'
将元素向左移动 (west
)
import tkinter as tk
root = tk.Tk()
txt = tk.Text(root, bg='black')
txt.pack(pady=75)
om_var = tk.StringVar(root, value='Hello')
om = tk.OptionMenu(root, om_var, 'Hello', 'World')
om.pack(anchor='nw') # north, west - top, left
root.mainloop()
或者您可以使用 fill="x"
(或 fill="both"
)调整为全宽
om.pack(fill='x')
但是还有其他问题 - 在 Text
中你使用了 pady=75
所以你在 Text
和 OptionMenu
之间创建了边距并且你需要 pady=(75,0)
删除 Text
以下的边距
txt.pack(pady=(75,0))
import tkinter as tk
root = tk.Tk()
txt = tk.Text(root, bg='black')
txt.pack(pady=(75,0))
om_var = tk.StringVar(root, value='Hello')
om = tk.OptionMenu(root, om_var, 'Hello', 'World')
om.pack(fill='x')
root.mainloop()
我想将下拉菜单移到左上角。 但是当我尝试 padx 和 pady 时什么也没有发生。
global text
self.text = tk.Text(root, bg='black', foreground="white", height="15")
self.text.pack(padx=0, pady=75)
self.text.delete('1.0', tk.END)
self.text.insert(tk.END, "Opps, not yet connect OR no files to be read....")
self.variable = StringVar(root)
self.variable.set("Temperature") # default value
self.w = OptionMenu(root, self.variable, "Temperature", "Mazda", "three")
self.w.pack()
我用 place()
而不是 pack()
解决了它。
因为默认元素居中,您需要 anchor='w'
将元素向左移动 (west
)
import tkinter as tk
root = tk.Tk()
txt = tk.Text(root, bg='black')
txt.pack(pady=75)
om_var = tk.StringVar(root, value='Hello')
om = tk.OptionMenu(root, om_var, 'Hello', 'World')
om.pack(anchor='nw') # north, west - top, left
root.mainloop()
或者您可以使用 fill="x"
(或 fill="both"
)调整为全宽
om.pack(fill='x')
但是还有其他问题 - 在 Text
中你使用了 pady=75
所以你在 Text
和 OptionMenu
之间创建了边距并且你需要 pady=(75,0)
删除 Text
txt.pack(pady=(75,0))
import tkinter as tk
root = tk.Tk()
txt = tk.Text(root, bg='black')
txt.pack(pady=(75,0))
om_var = tk.StringVar(root, value='Hello')
om = tk.OptionMenu(root, om_var, 'Hello', 'World')
om.pack(fill='x')
root.mainloop()