我想要一个条目,并且我想要在它下面有一个固定大小的列表框,该列表框是固定的。我想要另一个动态高度的列表框。它会随着时间的推移出现和消失,并且大小也会改变。我希望第二个列表框(实际上是一个下拉列表)显示在我希望修复的另一个列表框上。我用于更改大小等的代码是正确的,并且与 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()
但是当我运行它时,下拉列表没有出现。我错过了什么?
顺便说一句,我希望下拉列表的顶部边框恰好位于列表框的顶部边框上,并且它们都位于条目下方。
最佳答案
我强烈建议您不要使用地点
几何管理器。 永远。如果您想创建更大或更复杂的界面,则必须放置
小部件是很糟糕的。我建议使用 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/