Python 2.7 Tkinter 窗口小部件不显示

1 投票
2 回答
664 浏览
提问于 2025-04-18 03:19

我正在设置一个Tkinter应用程序,但不知道为什么基本的控件没有显示出来。我只看到一个空白的Tkinter窗口,什么都没有。

下面是我的代码。我尝试添加一些简单的控件,但还是不行。

这是我写的代码:

import Tkinter as Tk
import ttk as ttk

class MainApplication(Tk.Frame):
    def __init__(self, root):
        Tk.Frame.__init__(self)
        self.root = root
        self.root.title('JRSuite')
        root.attributes('-fullscreen', True)
        self.mainWindow = Tk.Frame(self)
        self.mainWindow.pack()
        self._windowSetup()

     def _windowSetup(self):
        '''Sets up the basic components of the main window'''
        self.tree = ttk.Treeview(self.mainWindow)
        self.tree.pack()
        self.note = ttk.Notebook(self.mainWindow)
        self.note.pack()
        self.tree.insert('', 'end', text = 'Woohoo')

if __name__ == '__main__':
root = Tk.Tk()
app = MainApplication(root)
app.mainloop()

2 个回答

1

问题: Tkinter的控件不显示

不要从 Tk.Frame 这个类继承,而是应该从 Tk.Tk 这个类继承,因为 Tk.Tk 是根窗口。
改成这样:

import Tkinter as Tk
import ttk as ttk

class MainApplication(Tk.Tk):
    def __init__(self):
        Tk.Frame.__init__(self)
        self.title('JRSuite')
        self.attributes('-fullscreen', True)

        self.mainWindow = Tk.Frame(self)
        self.mainWindow.pack()
        self._windowSetup(self.mainWindow)

     def _windowSetup(self, parent):
        '''Sets up the basic components of the main window'''
        self.tree = ttk.Treeview(parent)
        self.tree.pack()
        self.note = ttk.Notebook(parent)
        self.note.pack()
        self.tree.insert('', 'end', text = 'Woohoo')

if __name__ == '__main__':
    MainApplication().mainloop()
5

你应该把这个应用打包:

if __name__ == '__main__':
    root = Tk.Tk()
    app = MainApplication(root)
    app.pack()
    app.mainloop()

撰写回答