2017-08-15 82 views
0

我正在学习TK,并用python使用Panedwindow遇到问题。代码:tk.Panedwindow不可见

import tkinter as tk 
import tkinter.ttk as ttk 

class Application(tk.Frame): 
    def __init__(self,master): 
     #Set top window geomotry 

     tk.Frame.__init__(self,master) 

     pane = tk.PanedWindow(self) 
     pane.pack(fill=tk.BOTH, expand=1) 


     test=tk.Label(pane,text='test') 
     test.pack() 

root=tk.Tk() 
root.geometry("800x600") 
app=Application(root) 
tk.mainloop() 

没有任何内容出现在根窗口中。

回答

2

只有当Application的实例可见时,才会显示Application中的所有内容。它不是,因为您还没有在Application(即:app)的实例上调用packplacegrid

另一个问题更多的是概念问题。如果添加一个窗口窗口,但只有一个窗格,它将不会有分隔线,因为没有任何分隔。

这是您的代码的工作版本,第二个窗格使您可以更容易地对其进行可视化。

import tkinter as tk 
import tkinter.ttk as ttk 

class Application(tk.Frame): 
    def __init__(self,master): 
     #Set top window geomotry 

     tk.Frame.__init__(self,master) 

     pane = tk.PanedWindow(self) 
     pane.pack(fill=tk.BOTH, expand=1) 

     test=tk.Label(pane, text='test', background="pink") 
     pane.add(test) 

     test2 = tk.Label(pane, text="foo", background="blue") 
     pane.add(test2) 

root=tk.Tk() 
root.geometry("800x600") 
app=Application(root) 
app.pack(fill="both", expand=True) 
tk.mainloop()