Python / Tkinter:级联菜单固定在右侧而不是左侧

时间:2015-11-12 15:48:02

标签: python-3.x tkinter menubar

以下代码导致菜单栏中的级联菜单固定在右侧而不是左侧,原因不明。

import tkinter as tk

class Menubar(tk.Menu):
    def __init__(self, parent, *args, **kwargs):
        tk.Menu.__init__(self, parent, *args, **kwargs)

        filemenu = tk.Menu(self, tearoff=False)
        self.add_cascade(label="File",underline=0, menu=filemenu)
        filemenu.add_command(label="Exit", underline=0, command=None)

        testmenu = tk.Menu(self, tearoff=False)
        self.add_cascade(label="Test",underline=0, menu=testmenu)
        testmenu.add_command(label="First option", underline=0, command=None)


class MainApplication(tk.Frame):
    def __init__(self, parent, *args, **kwargs):
        tk.Frame.__init__(self, parent, *args, **kwargs)

        menubar = Menubar(parent)
        parent.config(menu=menubar)

if __name__ == "__main__":
    root = tk.Tk()
    MainApplication(root).pack(side="top", fill="both", expand=True)
    root.mainloop()

1 个答案:

答案 0 :(得分:4)

我能够解决问题。我首先只注意到我自己的应用程序中的问题,而其他人似乎正常工作。在尝试了一些其他应用程序后,似乎问题不仅限于我自己的问题。我想我先尝试的那些没有问题,因为他们可能使用了不同的widget工具包。问题是由Windows(8.1)引起的,它自动切换了平板电脑的一些设置(我有一个半平板电脑:联想Thinkpad瑜伽)。

运行以下命令解决问题(按Windows键+ R运行命令)

shell:::{80F3F1D5-FECA-45F3-BC32-752C152E456E}

这将使您进入“平板电脑设置”。在“其他”选项卡中,您必须确保选择“左手”。这会将菜单的外观更改为正常。