C# 从列表框中删除所选项目
我正在创建一个简单的GUI程序来管理优先级 我已经成功地将项目添加到列表框中,但现在我需要将它们从列表框以及提供的列表中删除-因为,如果我错了,请纠正我-在C中#创建列表视图时,您已经将列表视图本身(屏幕上显示的对象)装箱,但是您最终必须创建一个列表来存储listview中的对象。我最近了解到,C# 从列表框中删除所选项目,c#,python,listview,tkinter,listbox,C#,Python,Listview,Tkinter,Listbox,我正在创建一个简单的GUI程序来管理优先级 我已经成功地将项目添加到列表框中,但现在我需要将它们从列表框以及提供的列表中删除-因为,如果我错了,请纠正我-在C中#创建列表视图时,您已经将列表视图本身(屏幕上显示的对象)装箱,但是您最终必须创建一个列表来存储listview中的对象。我最近了解到,END参数用于将项目附加到列表中。这像是用C#做一个列表吗 因此,现在我想从列表框中删除所选项目(如果需要,还可以从列表中删除) 以下是我的位置: # priorities.py # GUI progra
END
参数用于将项目附加到列表中。这像是用C#做一个列表吗
因此,现在我想从列表框中删除所选项目(如果需要,还可以从列表中删除)
以下是我的位置:
# priorities.py
# GUI program to manage priorities
from tkinter import *
class GuiPart(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.master = master
self.master.resizable(width = False, height = False)
self.master.title("Priorities")
self.create_widgets()
def create_widgets(self):
buttonAdd = Button(self.master, text = "Add", command = self.addItem).grid(row = 2, column = 0, sticky = W + E)
buttonRemove = Button(self.master, text = "Remove", command = self.removeItem).grid(row = 2, column = 1, sticky = W + E)
buttonEdit = Button(self.master, text = "Edit", command = self.editItem).grid(row = 2, column = 2, sticky = W + E)
self.listBox = Listbox(self.master, width=30)
self.listBox.grid(row=1, sticky=W + E, columnspan=3)
self.textBox = Text(self.master, height=10, width=30)
self.textBox.grid(row=3, columnspan=3, sticky=W + E + N + S)
def get_priority_subject(self):
return self.textBox.get('1.0', '1.0 lineend')
def get_priority_order(self):
return self.textBox.get('2.0', '2.0 lineend')
def addItem(self):
self.listBox.insert(END, self.get_priority_subject()+' '+ self.get_priority_order())
self.clearAll()
def removeItem(self):
pass
def editItem(self):
pass
def clearAll(self):
self.textBox.delete('1.0', END)
if __name__ == "__main__":
root = Tk()
GuiPart(root)
root.mainloop()
我使用的是Python 3.5。
Listbox
es'有一个名为delete()
的方法来删除行。您可以使用它手动更改其内容。或者,当您创建列表框
并对其进行更改时,可以通过列表变量
选项指定一个StringVar
,这将自动导致相关的列表框
根据需要进行更新。以下是Listbox
es中的一些。由于需要删除多个选定项,我应该指定什么作为delete()的参数?您必须多次调用它,而不需要第二个参数。可能希望按相反的索引顺序执行此操作,因为删除较早的索引将更改较后的索引(假设您使用的是简单的整数索引)。就个人而言,我建议您使用listvariable=
关键字和StringVar
,因为它可以让您在一次调用中(对StringVar
的set()
方法)进行更新,而不是按照与Listbox.delete()相反的顺序进行多个调用。我不得不承认,我并不完全理解。我应该在哪里以及如何使用listvariable=和StringVar?对不起,还是个新手,没问题。据我所知,Tkinter的文档记录非常糟糕。以下是我发现的关于它的各种所谓的功能以及它们如何工作(在某种程度上)的一些信息。注意:我认为您不需要使用trace
功能来做您想做的事情,只需要set()
或者get()
。