我正在构建一个简单的 GUI,但在尝试将事件变量传递给另一个已经具有事件变量的函数时遇到了问题。
我正在尝试将变量“sqlItemx”(它是“self.item1”的事件变量)用于函数“addNumbs”。
如何传递此变量以供以后使用?
我试过简单地按照通常的约定传递变量,但这对我不起作用。
下面列出了我的代码摘录:
def listitems(self, event):
for widget in self.itemFrame.winfo_children():
widget.destroy()
searchLettersx = event.widget['text']
mycursor.execute("SELECT Name FROM inventory WHERE Name LIKE '" + searchLettersx + "%' ")
myresult = mycursor.fetchall()
rcount = 0
ccount = 0
for y in myresult:
self.item1 = tk.Button(self.itemFrame, text=y, bg='white', fg='deep sky blue', font=("Helvetica", 18), height='4', width='22')
self.item1.grid(column=ccount, row=rcount)
self.item1.bind('<Button-1>', self.addtoCart)
if rcount >= 5:
ccount += 1
rcount = 0
rcount += 1
def addtoCart(self, event):
win = tk.Toplevel(bg="white")
win.wm_title("Add to Cart")
sqlItemx = event.widget['text']
frame = tk.Frame(win)
frame.grid()
self.numpadFrame = tk.Frame(win, pady='20', bg="white")
self.numpadFrame.grid(column='0', row='2')
itemLabel = tk.Label(win, text=sqlItemx, bg="white", font=("Helvetica", 18), pady="30")
itemLabel.grid(row=0, column=0)
numLabel = tk.Label(win, text="How many? ", bg="white", font=("Helvetica", 18), pady="30", anchor='e', justify='left')
numLabel.grid(row=1, column=0)
numbers = ["1", "2", "3", "4" , "5" , "6" , "7" , "8" , "9" , " " , "0" , " "]
count = 0
for r in range(4):
for c in range(3):
numpad = tk.Button(self.numpadFrame, text=numbers[count], height='4', width='8', bg='white', fg='deep sky blue', font=("Helvetica", 18))
numpad.grid(row=r+1,column=c)
numpad.bind('<Button-1>', self.addNumbs)
count += 1
我的最终目标是能够将此变量的值传递给“addNumbs”,并将其用作我的 MySQL 语句的变量“val”中的值之一。
翻过高山走不出你
缥缈止盈
随时随地看视频慕课网APP
相关分类