2017-06-21 42 views
0

我一直有tkinter的問題。 它應該採取第一個窗口文本框 上的數字檢查它是否可以被五整除,如果是,將它除以五,並將其放在彈出窗口中。如果它不只是把在彈出的數字,而沒有通過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() 

,並沒有出現錯誤,但在彈出的標籤不出現在:

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()實例。使用[Toplevel()](http://effbot.org/tkinterbook/toplevel.htm)來代替你的'popup'。 – Lafexlos

+0

@Lafexlos我試着使用Toplevel(),它給了我一個錯誤,說Toplevel()沒有定義編輯:沒關係,它的工作。雖然有什麼區別? – 88user

回答

2

你需要調用pack您的標籤對象,即pack之後添加()

所以,你在哪裏打包answers應改爲answers.pack()

+0

謝謝。由於某種原因沒有看到。 – 88user