Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从列表框中删除所选项目_C#_Python_Listview_Tkinter_Listbox - Fatal编程技术网

C# 从列表框中删除所选项目

C# 从列表框中删除所选项目,c#,python,listview,tkinter,listbox,C#,Python,Listview,Tkinter,Listbox,我正在创建一个简单的GUI程序来管理优先级 我已经成功地将项目添加到列表框中,但现在我需要将它们从列表框以及提供的列表中删除-因为,如果我错了,请纠正我-在C中#创建列表视图时,您已经将列表视图本身(屏幕上显示的对象)装箱,但是您最终必须创建一个列表来存储listview中的对象。我最近了解到,END参数用于将项目附加到列表中。这像是用C#做一个列表吗 因此,现在我想从列表框中删除所选项目(如果需要,还可以从列表中删除) 以下是我的位置: # priorities.py # GUI progra

我正在创建一个简单的GUI程序来管理优先级

我已经成功地将项目添加到列表框中,但现在我需要将它们从列表框以及提供的列表中删除-因为,如果我错了,请纠正我-在C中#创建列表视图时,您已经将列表视图本身(屏幕上显示的对象)装箱,但是您最终必须创建一个列表来存储listview中的对象。我最近了解到,
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()