2017-09-24 11 views
0

私はTkinterで2つの数字を入力して一緒に追加するGUIを作ろうとしています。私は自分のウィンドウに答えを表示する方法が不明です。 はTypeError:+のためのサポートされていないオペランドのタイプ(S):「エントリ」と「エントリ」TkinterでGUIを構築する

from tkinter import * 
window = Tk() 
def add(): 
    label = Label(window, text=entry1 + entry2) 
entry1 = Entry(window, width=10) 
entry2 = Entry(window, width=10) 
button = Button(window, text='Click to add', command=add) 
entry1.pack() 
entry2.pack() 
button.pack() 
label.pack() 

誰かが私は私のコードを修正するのに役立つことができれば、私は非常に感謝し、私はそれを実行したときにも言うエラーがありますそれ。

答えて

2

あなたのコードにはいくつかの間違いがあります。 [エントリ]フィールドを直接使用することはできません。代わりに[エントリ]フィールドに値を追加する必要があります。また、tkinterのメインループ処理を追加する必要があります。

後は

import tkinter 

mainWindow = tkinter.Tk() 
mainWindow.title("Demo App") 
mainWindow.geometry("640x480+200+200") 

entry1 = tkinter.Entry(mainWindow,width=10) 
entry2 = tkinter.Entry(mainWindow,width=10) 
entry1.pack() 
entry2.pack() 

label = tkinter.Label(mainWindow,text="Click on add to add numbers") 
label.pack() 

def add_values(): 
    result = int(entry1.get()) + int(entry2.get()) 
    label['text'] = result 

button = tkinter.Button(mainWindow,text="Add",command=add_values) 
button.pack() 

mainWindow.mainloop() 
+0

でテストのおかげで、これは多くのことを助けました! –

+1

あなたがあなたのやり方を説明した方があなたの答えが良いでしょう。そうしないと、読者はあなたのコードを元の行と文字ごとに比較して、それを動作させるために何をしたのかを把握しようとします。 –

+0

メインの変更で更新されました。 –

1

あなたのコードは、いくつかのミスがあった、(あなたが入力フィールドの1に値を入力しない場合、それが失敗した)の取り扱いエラーのない迅速な実行している例です。最初の1つは、2つのエントリを追加することができず、それらの間に "+"記号を置くことです。 STRINGの値を取得し、それをINTEGERに変換し、ADDに追加してからENTRY BOXの値を設定する必要があります。 2番目の間違いは、MAIN LOOPを使用していないことです。 MAIN LOOPがなければ、tkinterのGUIは消えます。そのため、GUIはLOOPを使い続けます。

メモ帳++を使用する。 Windows 7でのPython 2.7

from tkinter import * 

window = Tk() 

#name window 
window.title('My Add') 

#window sized 
window.geometry('250x200') 


def add(): 
    sum = int(entry1.get()) + int(entry2.get()) 
    entry3.delete(0,END) 
    entry3.insert(0,str(sum)) 

L1 = Label(window, text='Number 1:')  
entry1 = Entry(window, width=20) 
L1.pack() 
entry1.pack() 

L2 = Label(window, text='Number 2:') 
entry2 = Entry(window, width=20) 
L2.pack() 
entry2.pack() 

button = Button(window, text='Click to add', command=add) 
button.pack() 

L3 = Label(window, text='Sum of Number 1 and Number 2:') 
entry3 = Entry(window, width=20) 
L3.pack() 
entry3.pack() 

window.mainloop() 

enter image description here

+0

あなたがあなたのやり方を説明した方があなたの答えがよかったでしょう。そうしないと、読者はあなたのコードを元の行と文字ごとに比較して、それを動作させるために何をしたのかを把握しようとします。 –

+0

は次回に必ず確認します。 –

+0

いつでも戻って答えを編集できます。 –

関連する問題