我遇到了一个问题并一直在搜索,但没有找到任何我认识的类似内容。有一个链接显示了如何在延迟 200 毫秒后运行循环,但我无法按照代码进行操作。
我的问题是我得到了一些多个列表框代码,运行它,它拉出我想要的但不允许我选择一个选项。我在列表框中选择了任何内容的实例,该框被销毁并且它拉入了所有值,而不仅仅是我选择的值。一个我想通了,我确定选择多个也可以。
不确定如何将其放入循环中,延迟它,停止它,以便我可以浏览列表并选择一个项目。任何代码链接或资源也会很感激阅读。谢谢。
import PyPDF2 as pdf2
import tkinter as tk
from tkinter import *
class PDF:
#def __init__(self):
# pass
def pdfItemExtract(self) -> None:
# Create tkinter Tk based Main Window
self.master_win = Tk() # Primary widget win. Tk GUI style
self.master_win.title("Resume Extract Options")
self.master_win.geometry('300x300')
# Vert scroll capability on right side of window
yscrollbar = Scrollbar(self.master_win)
yscrollbar.pack(side=RIGHT, fill=Y)
label = Label(self.master_win,
text="Select the languages below : ",
font=("Times New Roman", 10),
padx=10, pady=10)
label.pack() #Centers lbl (feature of pack)
# Widget expands horizontally and
# vertically by assigning both to
# fill option
self.list_box = Listbox(self.master_win,
selectmode="MULTIPLE",
yscrollcommand=yscrollbar.set)
self.list_box.pack(padx=10, pady=10,
expand=YES, fill="both")
x = ["C", "C++", "C#", "Java", "Python",
"R", "Go", "Ruby", "JavaScript", "Swift",
"SQL", "Perl", "XML"]
for each_item in range(len(x)):
self.list_box.insert(END, x[each_item])
self.list_box.itemconfig(each_item, bg="light blue")
# Attach listbox to vertical scrollbar
yscrollbar.config(command=self.list_box.yview) #yview: allows lbox vert scrollable
self.list_box.bind("<<ListboxSelect>>", self.callback)
self.master_win.mainloop()
return self.selected_items
def callback(self, eventObject): # Call back generates var. We call it 'event'
print(eventObject)
self.selected_items = self.list_box.get(0, last=END)
self.master_win.destroy()
/* -------- 主程序 -------- */
from m_pdf import *
if __name__ == '__main__':
pdf = PDF()
extract_list = pdf.pdfItemExtract()
答案 0 :(得分:1)
由于您使用了 self.selected_items = self.list_box.get(0, last=END)
,它将获取列表框中的所有项目。
您应该改用 self.selected_items = [self.list_box.get(x) for x in self.list_box.curselection()]
。