Basit bir tuşa sahip "Ana pencereyi yeni pencerede çiz" ana penceresini içeren örnek bir uygulamam var. Bu tuşa bastığınızda beni bir çocuk penceresine götürmeli ve orada bir grafik çizmeliyim. Bunun yerine, grafik ana pencerede çizilir, NetworkX görüntüleyici yeni (üçüncü) bir pencerede açılır ve alt pencere boştur.NetworkX Viewer'ı var olan bir Tkinter penceresinden açma
import Tkinter as tk
import networkx as nx
from networkx_viewer import Viewer
class MainWindow(tk.Frame):
counter = 0
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
self.button = tk.Button(self, text="Draw Graph in a new window",
command=self.create_window)
self.button.pack(side="top")
def create_window(self):
self.counter += 1
t = tk.Toplevel(self)
t.wm_title("Window #%s" % self.counter)
l = tk.Label(t, text="This is window #%s" % self.counter)
l.pack(side="top", fill="both", expand=True, padx=100, pady=100)
G=nx.complete_graph(30)
G.add_edge('a','b')
G.add_edge('b','c')
G.add_edge('c','a')
G.add_edge('c','d')
G.add_edge('b','d')
G.add_edge('p','q')
G.add_edge('q','r')
G.add_edge('r','p')
G.add_edge('r','s')
G.add_edge('q','s')
G.add_edge('w','x')
G.add_edge('x','y')
G.add_edge('y','w')
G.add_edge('y','z')
G.add_edge('x','z')
app = Viewer(G)
app.mainloop()
if __name__ == "__main__":
root = tk.Tk()
main = MainWindow(root)
main.pack(side="top", fill="both", expand=True)
root.mainloop()