我想要一个条目,并且想要一个固定大小的列表框,该列表框是固定的。我想要另一个动态高度的列表框它将随时间出现和消失,并且大小也会改变。我希望第二个列表框(实际上是一个下拉列表)显示在我要修复的其他列表框上。我更改大小等的代码是正确的,并且可以与pack()完美配合,但是随着大小的改变,它将上下移动另一个列表框。当我将pack()更改为place(...)时,它不再显示了。
这是我的代码:
from tkinter import *
root = Tk()
entry = Entry(
root,
width=50
)
frame = Frame(
root,
height=10,
width=50,
background="#caeaa9"
)
dropdown = Listbox(
frame,
background="#11FF11",
height=5,
width=50
)
listbox = Listbox(
frame,
background="#FF1111",
height=10,
width=50
)
entry.pack()
listbox.pack()
dropdown.place()
frame.pack()
mainloop()
但是,当我运行它时,下拉菜单不会出现。我想念什么?
顺便说一句,我希望下拉菜单的顶部边框恰好在列表框的顶部边框上,并且两者都在条目的正下方。
最佳答案
我强烈建议您不要使用place
几何管理器。曾经如果要创建更大或更复杂的界面,必须使用place
小部件非常糟糕。我建议改用grid
:
import tkinter as tk
# Avoid wildcard imports!
root = tk.Tk()
entry = tk.Entry(
root,
width=50
)
frame = tk.Frame(
root,
background="#caeaa9"
)
listbox = tk.Listbox(
frame,
background="#FF1111",
height=10,
width=50
)
dropdown = tk.Listbox(
frame,
background="#11FF11",
height=5,
width=50
)
entry.pack()
listbox.grid(column=0, row=0, sticky=N)
dropdown.grid(column=0, row=0, sticky=N)
frame.pack()
root.mainloop()
关于python - 如何使用tkinter.place()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46382129/