2017-02-10 14 views
-1

Я хотел бы, чтобы кто-то сказал мне, что не так с моим следующим кодом. Я хочу, чтобы код предоставлял окно с двумя кнопками, на которых говорилось 50%, а остальные 75%.Программирование кнопок Python TkInter

import tkinter as tk 

class Application(tk.Frame): 
    def _init_(self, master=None): 
     super()._init_(master) 
     self.pack() 
     self.create_widget1() 
     self.create_widget2() 

    def create_widget1(self): 
     self.test = tk.Button(self) 
     self.test["text"] = "50%" 
     self.test["command"] = self.choice1 
     self.test.pack(side="top") 
    def create_widget2(self): 
     self.test = tk.Button(self) 
     self.test["text"] = "75%" 
     self.test["command"] =self.choice2 
     self.test.pack(side="bottom") 

     self.quit = tk.Button(self, text="QUIT", fg="black", command=root.destroy) 
     self.quit.pack(side="bottom") 

    def choice1(self): 
     print ("You have chosen a discount of 50%") 
    def choice2(self): 
     print ("You have chose a discount of 75%") 

root = tk.Tk() 
app = Application(master=root) 
app.mainloop() 
+0

Я не слишком хорошо знакомы с Tkinter, но вы перезаписать 'self.test' в вызове' create_widget2() '. – Thelmund

+0

Это нормально, потому что это означает, что я работаю в рамках основной функции, которую я назвал тестом –

ответ

0

Вы забыли использовать двойной _ вокруг init. заменить

def _init_(self, master=None): 
     super()._init_(master) 

с

def __init__(self, master=None): 
     super().__init__(master) 
+0

О, вау, я не могу поверить, что пропустил это, спасибо большое. –