【发布时间】:2019-05-22 12:27:43
【问题描述】:
请原谅我的无知,因为我是 Python 新手并且正在尝试。
我正在创建一个允许用户打开文件的仪表板。当用户打开文件时,软件会在同一行添加一行,其中包含文件名、进度条和几个按钮。行创建是通过调用一个函数来完成的,该函数每次调用时都会增加行值,以确保它不会替换现有行,而是在其下方添加另一行以表示用户打开的最新文件。
假设仪表板上有两行,它们各自的文件名和按钮。我的问题是当我去按下第一行上的按钮时,它认为我正在按下第二行上的按钮只是因为在添加第二行时计数器设置为 2,我试图确定哪个按钮用户通过检查行来按下,但由于计数器而无法做到这一点。
在调用创建按钮函数时,我是否可以在声明它时将行值“绑定”到按钮,以便它们保留某种形式的 ID,并且我可以知道用户正在与哪一行进行交互?
我尝试在调用函数时为按钮分配一个 ID,以识别正在按下哪个按钮以及在哪一行,但是当再次调用该函数时,该按钮会在所有行上被覆盖。
我还尝试通过检查按钮的文本来检查用户正在按下的按钮,但是当重新调用该函数时,无论用户界面本身的按钮名称是否不同,它也会被覆盖。
非常感谢任何帮助。希望我已经足够清楚了。
def OpenFile(self): # user opening file which creates row with button
print("Opening")
btnCreation(self)
def btnCreation(self): # function to create buttons dynamically
incrementFunction(self)
global EXEBtn
EXEBtn = Button(Main_frame,
text="Execute",
width=8,
command=self.Execute)
EXEBtn.grid(row=RowCounter, column=2, padx=3)
def incrementFunction(self):
global RowCounter
RowCounter = RowCounter + 1
def Execute(self):
# check which row the execute button was pressed on to do something
【问题讨论】:
标签: python-3.x tkinter