我有一个名为buttongen
的类,它根据建筑物内的房间生成按钮。将对房间进行评估,并将结果存储在数据库中。如何返回按钮上的文本值以存储在变量中?每次我尝试存储文件室的结果时,都会出现错误TypeError: __init__() missing 2 required positional arguments: 'i' and 'row'
编辑:包括搜索建筑并生成按钮的代码部分
def search():
global screen13
global btn
screen13 = Tk()
screen13.geometry("300x250")
screen13.title("Rooms")
sitename3_info = sitename.get().strip()
if sitename3_info:
cursor = cnn.cursor()
# combine the two SQL statements into one
sql = ("SELECT roomname FROM rooms, Sites "
"WHERE rooms.siteID_fk2 = Sites.siteID AND siteName = %s")
cursor.execute(sql, [sitename3_info])
rooms = cursor.fetchall()
# remove previous result (assume screen13 contains only result)
for w in screen13.winfo_children():
w.destroy()
if rooms:
for i, row in enumerate(rooms):
buttongen(i, row)
else:
Label(screen13, text="No room found").grid()
class buttongen():
def __init__(self,i,row):
# creates a self generated amount of buttons which correspond to the amount of rooms in the table.
self.i = i
self.row = row
self.roomname = self.row[0]
self.btn = Button(screen13, text = self.roomname, command=lambda :[print(self.roomname), action()])
self.btn.grid(row=i, column=0)
def showroomname(self):
print(self.roomname)
如何将按钮上的文本存储在roomclicked_info = buttongen()
正确的代码可能如下所示:
类buttongen需要2个必需的位置参数
要初始化
buttongen()
的对象,需要传递def __init__(self,i,row):
中定义的两个必需参数i
和row
在使用
roomclicked_info = buttongen()
创建对象时,没有在buttongen()
中指定i
和row
参数。您可以在此处传递i
和row
的值,如roomclicked_info = buttongen(i, row)
相关问题 更多 >
编程相关推荐