Bootstrap

Python-tkinter库弹出对话框

在Python中,如果你想弹出一个包含列表数据的对话框,并允许用户从中选择一个选项,之后将所选数据回传到程序中,你可以使用tkinter库中的askstringaskinteger函数配合列表框(Listbox)来实现。以下是一个示例代码,演示了如何实现这个功能:

import tkinter as tk
from tkinter import Listbox, messagebox

def select_item():
    selected_item = listbox.get(listbox.curselection())  # 获取当前选中的项
    if selected_item:
        messagebox.showinfo("Selected Item", f"You selected: {selected_item}")
    else:
        messagebox.showwarning("Warning", "No item selected")

# 创建主窗口
root = tk.Tk()
root.title("Select an Item")

# 创建一个Listbox控件
listbox = Listbox(root)
listbox.pack(pady=20)

# 向Listbox添加选项
items = ["Apple", "Banana", "Cherry", "Date", "Elderberry"]
for item in items:
    listbox.insert(tk.END, item)

# 为Listbox添加点击事件
listbox.bind('<<ListboxSelect>>', lambda event: select_item())

# 启动事件循环
root.mainloop()

在这个示例中,我们创建了一个包含选项列表的 Listbox 控件,并将其添加到主窗口中。用户可以从列表中选择一个项,一旦选择,就会弹出一个消息框显示所选的项。如果没有选择任何项,就会显示一个警告消息框。

注意,listbox.curselection() 会返回当前选中项的索引,listbox.get() 方法可以用来根据索引获取列表项的值。messagebox.showinfo 和 messagebox.showwarning 用于显示信息和警告消息框。

;