为什么我不能在 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 所以你在 TextOptionMenu 之间创建了边距并且你需要 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()