- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在创建一个 session 列表,然后对 session 进行 pickle。这一点有效,但是当我使用右键单击菜单从列表框中删除 session 时,我需要能够从我正在 pickle 的列表中删除该项目。
如何获取当前列表框选择中的文本?
这是我的代码:
class Main(self, root)
def __init__(self):
self.f2=Frame(root)
self.f2.grid()
Label(self.f2, text="Sesion Date:").grid(row=3, column=0)
self.e=Entry(self.f2)
self.e.grid(row=3, column=1)
Button(self.f2, text="Add Session", command=lambda: self.session(client)).grid(row=4, columnspan=2)
scrollbar=Scrollbar(self.f2)
self.sessionbox=Listbox(self.f2, yscrollcommand=scrollbar.set)
self.sessionbox.grid(row=5, columnspan=2)
self.sessionmenu=Menu(self.sessionbox, tearoff=0)
self.sessionmenu.add_command(label="Delete", command=lambda: self.deleteSession(client))
self.sessionbox.bind("<ButtonRelease-2>", self.sessionRightClick)
scrollbar.config(command=self.sessionbox.yview)
def session(self, client):
if len(self.e.get()) == 0:
tkMessageBox.showinfo("Add Session", "Please type a session date\nbefore submitting")
else:
self.sessionlist=[]
self.sessionlist.append("%s" % (self.e.get()))
self.sessionbox.insert(0, "%s" % (self.e.get()))
with open("sessions", "wb") as f:
pickle.dump(self.sessionlist, f)
self.e.delete(0, END)
self.row1+=1
def deleteSession(self, client):
try:
sel=self.sessionbox.curselection()
self.sessionbox.delete(sel)
self.sessionlist.remove()
with open("sessions", "wb") as f:
pickle.dump(self.sessionlist, f)
except:
tkMessageBox.showerror("Delete Session", "No session selected!")
def sessionRightClick(self, event):
self.sessionmenu.post(event.x_root, event.y_root)
root=Tk()
app=Main(root)
root.mainloop()
最佳答案
如果你想获取列表框中的每一项,那么你可以使用它。请记住,返回的是一个 tuple
.get(0, tk.END)
如果您想要当前选择的项目,那么您可以使用它。请记住,返回的是一个 tuple
.curselection()
但是,这只会为您提供所选项目的索引。要获取文本,只需使用类似这样的东西。使用 .curselection()
中的索引值从整个选择中获取项目
import tkinter as tk
l_box = tk.Listbox(...)
all_items = l_box.get(0, tk.END) # tuple with text of all items in Listbox
sel_idx = l_box.curselection() # tuple with indexes of selected items
sel_list = [all_items[item] for item in sel_idx] # list with text of all selected items
关于python - 从列表框项中获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34113519/
我的组件的模板呈现一个列表: {{ m.name }} 组件为其设置动画 @Component({ selector: 'app-client-detail', tem
我在回收站 View 中为每个项目使用卡片 View ,但我在图片下方和上方有空白,我不确定如何,我需要摆脱它。这是每个项目的 xml 布局。
我有一个包含许多 float 子元素的 div。每个子项都是一个包含输入和标签的 div。在 Firefox 中它看起来不错,但在 IE7 中,一行的最后一项被换行以适合,而不是被移动到下一行。 Wr
我创建了一个包含三个按钮的 wxpython 框架,在将视频格式化到 wxpanel 上时出现问题 这就是我流式传输网络摄像头的方式。 #code for the stream of webcam t
我想为 ListView 中的每个项目创建一个 fragment ,因为我想分离出一些逻辑。我正在为每个项目使用 View 持有者。如果 View 不存在,我将创建一个新 fragment 并将其添加
我正在使用 Joda 解析 RSS 项中的 pubDate。日期必须采用 RFC-822 格式: http://feed2.w3.org/docs/error/InvalidRFC2822Date.h
我正在尝试为我的第一个项目提供一个在此循环中处于事件状态的类。但是第二个和第三个项目可能没有“事件”类。 @foreach ($news as $newsitem)
我是一名优秀的程序员,十分优秀!