2017-09-25 12 views
0

私の質問はpython 2.7のtkinterについてです。難しさは、私が定義したサイズのウィンドウと、定義されたサイズのないすべてのボタンを持つウィンドウの2つのウィンドウを開くので、1つのウィンドウ内のすべてのボタンを取得することにあります。Pythonのtkinterボタンを2つではなく1つのウィンドウに移動

コード{ここで挿入回旋}

from Tkinter import * 

master = Tk() 

class Calculator: 
    def __init__(self,master): 
     self.var = IntVar() 
     frame = Frame(master) 
     frame.grid() 
     f2 = Frame(master,width=500,height=500) 
     f2.grid(row=0,column=1) 


def callback(): 
    print("Hello World") 

b = Button(master, text="Calc", command=callback) 
b.grid() 


e = Entry(master, width=10) 
e.grid() 

e.focus_set() 

b1 = Button(master, text = "Ok", width=10, command = callback) 
b1.grid(row=20, column=30) 


top = Tk() 
app = Calculator(top) 
mainloop() 
+1

同じプログラムで 'Tk()'を2回呼び出すことはできません。実際に複数のウィンドウが必要な場合は、最初のウィンドウ以外のすべてのウィンドウに対して、代わりに 'Toplevel()'を使用する必要があります。 – jasonharper

+1

2つのウィンドウを作成しています。なぜ、単に第2のウィンドウを作成しないのですか? –

答えて

0

Tkinterの更新ループを管理するTkinterのアプリとmainloop()の1つのインスタンスを開始するTk()のうちの正確に1つのインスタンスを必要とします。

Tk()を複数回電話すると、複数のウィンドウや必要なものが動作しないという問題が発生します。

2つ以上のウィンドウが必要な場合は、それらを作成するためにToplevel()を使用する必要があります。

あなたが削除した場合:へ

app = Calculator(top) 

top = Tk() 

と変更

app = Calculator(master) 

を意図したようにあなたは、1つのウィンドウですべてのものを持っています。

+0

おかげさまで、私はより良い評判を得て、アップアップできるようにしたいと思っています:-D – kres0345

+0

助けてくれてうれしいです。問題は比較的一般的で、さまざまな形で尋ねられています。次回は、同様の問題についてスタックオーバーフローを検索しようとする必要があります。 'Tkinterは2つのウィンドウを開きます。私は理由を知りません。非常によくある質問です。 –

関連する問題