python - Tkinter 按钮显示但不起作用(初学者)
问题描述
我可以通过使用 ,self 更改按钮命令来显示 GUI,但按钮仍然无法工作。有什么建议吗?主要问题是 def btnclick() 和 btn1 command=BtnClick() 其余按钮也不起作用,但可以打开并显示。我以为这是一个缩进错误,但我尝试了一些不同之处而没有看到直接的变化。我还尝试将 def 类移动到其他代码行的上方和下方
class MainWindow(Frame):
def __init__(self):
Frame.__init__(self)
self.master.minsize(350,150)
self.grid(sticky=E+W+S+N)
self.save_dir = None #learn more about this: Try being more spasatious , ecfic
self.filename_open = None #learn more about this
top = self.winfo_toplevel()
top.rowconfigure(0, weight=1)
top.columnconfigure(0, weight=1)
rd1 = random.randint(1, 20)
rd2 = random.randint(1, 20)
aiR1 = 20 - rd1
aiR2 = 20 - rd2
totalDif1 = 20 - rd1 - rd2
totalDif2 = 20 - rd1 + rd2
#---------Labels&Names---------#
myLabel = Label(self, text = "tt")
myLabel.grid(row=3, column=0, pady=2, padx=2, sticky=E+W+N+S)
lbl1 = Label(self, text="My Roll", bg="#FFE19E")
lbl1.grid(row=3, column=1, pady=2, padx=2, sticky=E+W+N+S)
lbl2 = Label(self, text = "Ai Roll", bg="#FFE19E")
lbl2.grid(row=3, column=2, pady=2, padx=2, sticky=E+W+N+S)
lbl3 = Label(self, text = "Second Roll", bg="#FFE19E")
lbl3.grid(row=5, column=1, pady=2, padx=2, sticky=E+W+N+S)
lbl4 = Label(self, text = "Ai ReRoll", bg="#FFE19E")
lbl4.grid(row=5, column=2, pady=2, padx=2, sticky=E+W+N+S)
roll1 = Label(self, text=rd1)
roll1.grid(row=4, column=1, pady=2, padx=2, sticky=E+W+N+S)
roll2 = Label(self, text=aiR1)
roll2.grid(row=4, column=2, pady=2, padx=2, sticky=E+W+N+S)
roll3 = Label(self, text=rd2)
roll3.grid(row=6, column=1, pady=2, padx=2, sticky=E+W+N+S)
roll4 = Label(self, text=aiR2)
roll4.grid(row=6, column=2, pady=2, padx=2, sticky=E+W+N+S)
#---------Buttons---------#
btn1 = Button(self, text="Roll", command=BtnClick(), activeforeground="red", relief="raised")
btn1.grid(row=0, column=0, pady=2, padx=2, sticky=E+W+N+S)
btn2 = Button(self, text="grey", command=BtnReset(),relief="raised")
btn2.grid(row=1, column=0, pady=2, padx=2, sticky=E+W+N+S)
def BtnClick():
myLabel = Label(self, text = " ")
def BtnReset():
myLabel = Label(self, text = " ")
if __name__ =="__main__":
d = MainWindow()
d.mainloop()
解决方案
推荐阅读
- node.js - 如何一次取消设置所有环境变量?
- reactjs - Monorepo 中的 Nextjs + Expo“无效的 Hooks 调用”
- c++ - 当返回类型是可移动的时,有没有办法一致地引用捕获返回的变量并在析构函数中使用它?
- npm - 需要有关此查询的帮助
- mysql - 仅使用连接的 Sql 交集查询
- c - 将数据从文件保存到c中的结构
- jquery - 发送前的jquery fileinput getlocation
- php - 使用 Laravel Eloquent 传递在函数中调用的数组值
- python - 如何使用 numpy 拆分日期时间数据以在 python 中创建多个功能
- automata - 找到一个集合以显示与非常规语言的可区分性