首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MacOS 11.2.2中没有出现Tkinter菜单

MacOS 11.2.2中没有出现Tkinter菜单
EN

Stack Overflow用户
提问于 2021-03-31 17:44:15
回答 2查看 67关注 0票数 0

我正在尝试创建一个应用程序来显示电力系统研究中的实时数据。该菜单将用于打开每个图表的历史信息显示在“头版”,并将包括一个退出选项。当我创建菜单并向它添加几个项目时,当我运行应用程序时,它不会出现。不幸的是,在我的搜索中,我尝试过的所有选择都没有出现。

代码语言:javascript
复制
from tkinter import *
from tkinter import ttk


class PicoGridInterfacing(Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.grid()
        menubar = Menu(root)
        menu = Menu(menubar)
        menubar.add_cascade(label="Menu", menu=menu)
        menu.add_command(label="History", command=None)
        menu.add_command(label="Quit", command=root.quit)

        batteryData = Frame(root)
        batteryData.grid(row=1, column=0)
        Label(batteryData, text="Hello!").grid()


root = Tk()
root.title("Electric Power Systems Lab Pico Grid Interfacing")
app = PicoGridInterfacing(master=root)
root.mainloop()

下面是我看到的输出的屏幕截图:输出截图

任何帮助都将不胜感激,谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-31 17:59:02

试试这个:

代码语言:javascript
复制
from tkinter import *
from tkinter import ttk


class PicoGridInterfacing(Frame):
    def __init__(self, master=None):
        super().__init__(master)

        # master = master # `super().__init__(master)` already does that so its useless

        # Creating the menu
        menubar = Menu(root)
        menu = Menu(menubar, tearoff=False)
        menubar.add_cascade(label="Menu", menu=menu)
        menu.add_command(label="History", command=None)
        menu.add_command(label="Quit", command=root.destroy)

        # Tell the `Tk()` that there is a menu that it need to display:
        master.config(menu=menubar)

        batteryData = Frame(self)
        batteryData.grid(row=1, column=0)
        Label(batteryData, text="Hello!").grid()


root = Tk()
root.title("Electric Power Systems Lab Pico Grid Interfacing")
app = PicoGridInterfacing(master=root)
# When you inherit from `Frame` you always what the user to call `.grid`
app.grid()
root.mainloop()

您需要告诉tkinter.Tk()有一个菜单,否则它会忽略它。而且,当从tkinter.Frame继承时,调用方的任务是调用.grid (这是惯例)。

票数 0
EN

Stack Overflow用户

发布于 2021-03-31 17:57:57

您需要将菜单栏附加到根窗口。

那么就这么做:root.config(menu=menubar)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66892737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档