2017-06-21 10 views
0

私はtkinterに問題があります。 最初のウィンドウのテキストボックスに数字を入力すると仮定します 5で割り切れるかどうかをチェックし、そうであれば5で割ってポップアップウィンドウに表示します。そしてそれだけでポップアップ上の番号を入れておらず、5tkinterエラーラベルが表示されません

によってコードを、それを分割しない場合は、このです:

from tkinter import * 
from tkinter import ttk 
import tkinter as tk 
answer = 0 
def popup(): 
    global answer 
    if (number[-1] == 5 or number[-1] == 0): 
     number/5 
     if (int(number) > 1): 
      answer = "\number 5 cent coins" 
     else: 
      answer = "\number 5 cent coin" 
    else: 
     if (int(number) > 1): 
      answer = "\number 1 cent coins" 
     else: 
      answer = "\number 1 cent coin" 
    popup = tk.Tk() 
    popup.wm_title("answer") 
    popup.geometry("330x85") 
    answers = Label(popup, text=answer) 
    answers.pack 
    B1 = ttk.Button(popup, text="Ok", command=popup.destroy) 
    B1.pack() 
def add_text(): 
    global number 
    number = num_textbox.get() 
    print(number) 
    popup() 
    root.destroy() 
root = Tk() 
root.title("Number Cent Divider") 
root.geometry("330x85") 
num_col_mat = Label(root, text="Your number:") 
num_col_mat.pack() 
num_textbox = Entry(root, bd=1) 
num_textbox.pack() 
enter_button = Button(root, text="Enter", command=add_text) 
enter_button.pack() 
root.mainloop() 

とエラーが表示されますが、ポップアップのラベルにはありませんあなたはつまり、あなたのラベルオブジェクトにpackを呼び出すpack()を追加する必要が

popup = tk.Tk() 
popup.wm_title("answer") 
popup.geometry("330x85") 
answers = Label(popup, text=answer) 
answers.pack 
B1 = ttk.Button(popup, text="Ok", command=popup.destroy) 
B1.pack() 
+0

複数のTk()インスタンスを作成しないでください。代わりに、あなたの 'popup'として[Toplevel()](http://effbot.org/tkinterbook/toplevel.htm)を使用してください。 – Lafexlos

+0

@Lafexlos Toplevel()を使ってみましたが、Toplevel()が定義されていないというエラーが表示されました。編集:nevermind、うまくいきました。しかし、違いは何ですか?ありがとう。 – 88user

答えて

2

:に表示されます。

したがって、answersをパックする場所は、answers.pack()である必要があります。

+0

ありがとう。何らかの理由でそれを見ていない。 – 88user

関連する問題