【发布时间】:2018-07-20 19:16:10
【问题描述】:
脚本应该打开一个带有两个可见按钮的应用程序。当按下 Hello 按钮时,将在行号 1 中网格化一个新按钮,并且将停用 Hello 按钮。当按下这个新按钮时,它应该将自己从网格中删除并重新激活 hello 按钮,但它不会这样做。
请查看video 以查看它的实际效果。
代码已编辑以评论建议
from tkinter import *
class Application(Frame):
def __init__(self, master=None):
self.master = master
self.master.geometry('300x100+10+10')
Frame.__init__(self, master)
self.pack()
self.createWidgets()
def new_button(self):
print("enable_b")
self.hi_there.config(state=ACTIVE)
self.new_button.grid_remove()
def say_hi(self):
print("hi there, everyone!")
self.new_button = Button(self)
self.new_button.config(text = "New BTN", command=self.new_button)
self.new_button.grid(row=1,column=0)
self.hi_there.config(state=DISABLED)
def createWidgets(self):
self.QUIT = Button(self)
self.QUIT.config(text="QUIT",fg="red",command=self.quit)
self.QUIT.grid(row=0,column=1)
self.hi_there = Button(self)
self.hi_there["text"] = "Hello",
self.hi_there["command"] = self.say_hi
self.hi_there.grid(row=0,column=0)
def quit(self):
self.master.destroy()
def testit():
root = Tk()
app = Application(master=root)
app.mainloop()
if __name__ == '__main__':
testit()
【问题讨论】:
-
您永远不会将命令分配给
self.new_button。您在self.hi_there按钮中设置了命令。