Python Tkinter optionmenu在windows中比其包含的框架占用更多的空间,但在linux中则不然

Python Tkinter optionmenu在windows中比其包含的框架占用更多的空间,但在linux中则不然,python,linux,windows,tkinter,Python,Linux,Windows,Tkinter,周末我在我的linux机器上开发了一个tkinter用户界面,它基本上按照我想要的方式工作。现在我在windows上尝试相同的代码,但工作方式不同。 我想做的是在另一个小部件的顶部放置一个框架(使用place),这在两个系统上都非常有效。然后我尝试在这个框架中放置一个OptionMenu小部件,并让它填充整个框架。 这在Linux中非常有效,但在Windows上,框架会围绕optionmenu调整大小,因此它不再是指定的大小,而是比指定的框架更高、更窄。下面是一些显示问题的示例代码: from

周末我在我的linux机器上开发了一个tkinter用户界面,它基本上按照我想要的方式工作。现在我在windows上尝试相同的代码,但工作方式不同。
我想做的是在另一个小部件的顶部放置一个框架(使用place),这在两个系统上都非常有效。然后我尝试在这个框架中放置一个OptionMenu小部件,并让它填充整个框架。 这在Linux中非常有效,但在Windows上,框架会围绕optionmenu调整大小,因此它不再是指定的大小,而是比指定的框架更高、更窄。下面是一些显示问题的示例代码:

from Tkinter import *

tk = Tk()
frame1=Frame(tk, height=200, width = 200, bd=1)
frame1.pack(fill=BOTH)
marker=Frame(frame1, height=20, width=100, bd=2, bg='#55FF55')
marker.place(relx=0.25, rely=0.5)
frame2=Frame(frame1, height=20, width=100, bd=2, bg='#FF5555')
frame2.place(relx=0.25, rely=0.5)
var=StringVar(frame2)
om=OptionMenu(frame2, var, 'One', 'Two', 'Three')
om.pack(fill=BOTH, expand=1)

tk.mainloop()

你知道如何让OpType菜单填充而不是超过原来的帧大小吗?

你认为“原始帧”是什么?您试图将其限制为多大尺寸?你到底想完成什么?这是一段非常奇怪的代码。可能有更好的方法来完成您想要的操作。我将frame2的大小设置为一个值。当我将optionmenu放入该框架时,该框架会扩展到比我最初设置的更高和更窄。在大图中,我试图制作一个由3个列表框组成的小部件,其中3个列表框中的每个项目都可以使用optionmenu进行选择。当用户单击其中一个列表框时,我想在该项的顶部绘制一个optionmenu,这样用户就可以通过在optionmenu中选择一个选项来更改列表框选择中的内容。昨天我让它在linux上工作得很好,但现在我正试图让它在windows上以同样的方式工作。显然,上面的代码过于简单,但“标记”框架只是作为参考frame2'是有问题的框架。在linux上(在kde中,我没有尝试过gnome),Optionmenu被缩放到适合的大小,并且不超过frame2的大小。在windows上,optionmenu的大小大于我设置的frame2的大小。您可以将其设置为optionmenu不会使frame2变大,但将要发生的是,它的一部分将被切掉。它不会神奇地缩小尺寸。