gpt4 book ai didi

python - 如何在类中正确使用和定义属性。 tkinter 粘性按钮网格,可单独对功能使用react

转载 作者:行者123 更新时间:2023-12-01 02:51:36 26 4
gpt4 key购买 nike

我正在尝试创建一个有弹性的按钮网格,按下时会改变颜色。使用 tkinter 创建网格,我认为我在调用正确的根或格式时遇到问题。创建调整网格大小不是问题,但是让代码对函数使用react却给我带来了问题。

任何朝着正确方向的插入都将受到极大的赞赏。

from tkinter import *   
gx = 4
gy = 4
class trisector:
def __init__(self, master): #starts the index and root of function
Grid.rowconfigure(master, 0, weight=1) #
Grid.columnconfigure(master, 0, weight=1)
frame=Frame(master)
frame.grid(row=0,column=0,sticky=N+S+E+W)

for x in range(gx):
Grid.rowconfigure(frame, x , weight=1)
for y in range(gy):

Grid.columnconfigure(frame, y, weight=1)
self.btn = Button(frame, command=lambda widget=self.btn:
self.color_change(widget))
self.btn.grid(row=x, column=y, sticky=N+E+W+S)
self.btn.position=(x,y)

def color_change(self,widget):
x,y = widget.position
print("Changing", (x,y))
swidget.configure(bg="red")
root = Tk()
bob = trisector(root)
root.mainloop()

最佳答案

首先,您需要将 command 的分配拆分为 self.btn,因为您正在尝试传递按钮本身的实例:

self.btn = Button(frame)
self.btn['command'] = lambda widget=self.btn: self.color_change(widget)

然后修复color_change()中的拼写错误:

def color_change(self,widget):
x,y = widget.position
print("Changing", (x,y))
widget.configure(bg="red") # <-- change swidget to widget

关于python - 如何在类中正确使用和定义属性。 tkinter 粘性按钮网格,可单独对功能使用react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44707198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com