我有一些python代码,它使用SQL表中的数据生成按钮。是否有一种方法可以获取我选择的按钮的文本,因为我的代码将只检索for循环中的最后一个值。我不能为每个按钮设置一个变量,因为每个站点都有不同数量的房间
def search():
global screen13
global btn
global roomclicked
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):
roomname = row[0]
roomclicked = roomname
btn = Button(screen13, text=roomname, command=lambda room=roomname: action(room))
btn.grid(row=i, column=0)
else:
Label(screen13, text="No room found").grid()
谢谢大家!
编辑:您需要使用一个类来存储每个按钮的实例
使用
.cget()
我没有访问您的表的权限,但我尝试使用您的代码进行访问,应该可以
相关问题 更多 >
编程相关推荐