【发布时间】:2020-06-10 00:05:39
【问题描述】:
我正在尝试在 GUI 中输入文本并使用输入的文本制作标签。我正在创建的标签旁边创建按钮。 按下这些按钮时,我想删除与这些按钮关联的标签。我该怎么做?
目前我有一些代码如下:
import tkinter as tk
chosenvarlabel = []
cancelbutton = []
label_relyPlacement = 0.4 # these allow variables to be displayed one below the other after #confirmation
label_relyIncrement = 0.0
root = tk.Tk()
IntroCanvas = tk.Canvas(height = 300, width = 300)
IntroCanvas.pack()
def cancel():
pass
# chosenvarlabel[cancelbutton[]].place_forget() # unable to pass index here
def choose():
global label_relyIncrement, chosenvarlabel, cancelbutton
var1 = varentry1.get()
var2 = varentry2.get()
label_relyIncrement = label_relyIncrement + 0.1
chosenvarlabel.append(tk.Label(root, text = var1 + " " + var2))
chosenvarlabel[len(chosenvarlabel)-1].place(relx = 0.1, rely = label_relyPlacement + label_relyIncrement)
cancelbutton.append(tk.Button(root, text = ' X', command = cancel))
cancelbutton[len(chosenvarlabel)-1].place(relx = 0.6, rely = label_relyPlacement + label_relyIncrement)
varentry1 = tk.Entry(width = 6)
varentry1.place(relx = 0.2, rely = 0.2)
varentry2 = tk.Entry(width = 6)
varentry2.place(relx = 0.4, rely = 0.2)
myButton = tk.Button(root, text ='choose', command = choose)
myButton.place(relx = 0.6, rely = 0.2)
root.mainloop()
我在想,因为每个按钮都在“取消按钮”列表中,如果我将此按钮的索引以某种方式传递给函数“取消”,则列表 selectedvarlabel 中相同索引的标签将被删除。
但我无法使用 cancelbutton.index() 获取索引
创建的取消按钮列表是:
[<tkinter.Button object .!button2>,
<tkinter.Button object .!button3>,
<tkinter.Button object .!button4>]
但是'index' 不能访问这些元素。这是为什么?我该怎么做?
谢谢
R
【问题讨论】:
-
您可以将标签引用传递给 cancel() 函数。
-
如何在不知道其索引的情况下获取特定标签的参考?