2016-11-07 11 views
0

私は、プログラムが実行されるときに、2つのサブ関数の2つのウィンドウを一緒に開いた状態にしたいと考えています。Python + Tkinter:2つのサブ関数から2つの独立したウィンドウを開く方法は?

(まあ、より正確であるために、2つのサブ機能が一緒に実行します。しかし、結果として、私は2つのウィンドウが表示したいいけない。)

しかし、私の次のコードは、だけで一つのウィンドウを開くために私を可能に同時。

私は2つのサブ関数構造を持つことをお勧めします。どうすればコードを変更できますか?ご協力いただきありがとうございます!

from Tkinter import * 

def Window1(): 
    root1 = Tk() 
    root1.title("Window 1") 

    Label1 = Label(root1,text="abc",width=60) 
    Label1.grid(row=0, column=0) 

    root1.mainloop() 


def Window2(): 
    root2 = Tk() 
    root2.title("Window 2") 

    Label2 = Label(root2,text="ABC" ,width=60) 
    Label2.grid(row=0, column=0) 

    root2.mainloop() 

Window1() 
Window2() 

答えて

2

複数のウィンドウを開いている場合は、Toplevelウィジェットの最初のインスタンスの後に任意のウィンドウを作る必要があります。

以下の例は、これを実行する方法を示しています。最初のウィンドウはメインウィンドウで、閉じている場合はそのアプリケーションを終了します。 2番目のウィンドウはアプリケーションを終了させず、ただ閉じます。

from Tkinter import * 

def mainwindow(root): 
    root.title("Window 1") 
    Label1 = Label(root,text="abc",width=60) 
    Label1.grid(row=0, column=0) 


def otherwindow(parent): 
    root2 = Toplevel(parent) 
    root2.title("Window 2") 

    Label2 = Label(root2,text="ABC" ,width=60) 
    Label2.grid(row=0, column=0) 

root = Tk() 

mainwindow(root) 
otherwindow(root) 

root.mainloop() 
+0

これは機能します。どうもありがとうございます! – doglas

関連する問題