我在此脚本中遇到错误,tkinter显示屏上看不到任何内容

问题描述

from tkinter import *
root=Tk()
class menu_w:
    
    def nothing(self):
        pass
    def __init__(self,root):
        self.menubar= Menu(root)
        root.config(menu=self.menubar)
        self.filemenu= Menu(root,tearoff=0)
        self.filemenu.add_command(label="New",command=self.nothing)
        self.filemenu.add_command(label="open",command=self.nothing)
        self.filemenu.add_command(label="save",command=self.nothing)
        self.filemenu.add_command(label="save as",command=self.nothing)
        self.menubar.add_cascade(label=File,menu=self.filemenu)
   
k=menu_w(root)   
root.mainloop()

解决方法

您忘记在self.menubar.add_cascade中定义两个对象,尤其是File和脚本下面的方法filemenu会起作用。

from tkinter import Tk,Menu

class menu_w:

    def __init__(self,root):
        self.menubar = Menu(root)
        root.config(menu=self.menubar)

        self.filemenu = Menu(root,tearoff=0)
        self.filemenu.add_command(label="New",command=self.nothing)
        self.filemenu.add_command(label="open",command=self.nothing)
        self.filemenu.add_command(label="save",command=self.nothing)
        self.filemenu.add_command(label="save as",command=self.nothing)
        self.menubar.add_cascade(label="File",menu=self.filemenu)

    def nothing(self):
        pass

    def filemenu(self):
        pass


def main():
    root = Tk()
    k = menu_w(root)
    root.mainloop()


if __name__ == '__main__':
    main()

一些建议:

  • 请勿使用通配符导入,而是from tkinter import *进行from tkinter import Tk,Menu
  • 使用if __name__ == '__main__':构造
  • root = Tk()带到main函数

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...