TK点击按钮后出现带下拉框的小窗口并且在小窗口未关闭的情况下点击按钮只出现一次小窗口,关闭小窗口后点击按钮后会再次出现
时间: 2023-08-02 08:10:52 浏览: 124
提示下拉框
您可以使用Tkinter中的Toplevel组件来实现这个功能。您可以在按钮单击事件处理程序中创建一个Toplevel窗口,然后在该窗口中添加下拉列表框和其他控件。您可以使用Toplevel窗口的withdraw()方法将其隐藏,并使用deiconify()方法将其显示出来。
以下是一个简单的示例代码,以创建一个带有下拉框的Toplevel窗口:
```python
import tkinter as tk
def show_dropdown():
if not hasattr(show_dropdown, "top"):
# create the top-level window if it doesn't already exist
show_dropdown.top = tk.Toplevel(root)
show_dropdown.top.protocol("WM_DELETE_WINDOW", hide_dropdown)
# add a dropdown list
options = ["Option 1", "Option 2", "Option 3"]
var = tk.StringVar(show_dropdown.top)
var.set(options[0])
dropdown = tk.OptionMenu(show_dropdown.top, var, *options)
dropdown.pack()
# add other widgets as needed
# show the top-level window
show_dropdown.top.deiconify()
def hide_dropdown():
# hide the top-level window
show_dropdown.top.withdraw()
root = tk.Tk()
# add a button to show the dropdown
button = tk.Button(root, text="Show Dropdown", command=show_dropdown)
button.pack()
root.mainloop()
```
在此示例中,show_dropdown()函数检查是否已经创建了Toplevel窗口。如果没有,则创建一个窗口,并向其添加一个下拉列表框和其他控件。然后,它将该窗口显示出来。如果窗口已经存在,则只会将其显示出来。
hide_dropdown()函数将Toplevel窗口隐藏。该窗口的关闭按钮也被禁用,以防止用户意外关闭窗口。
阅读全文