DT2*_*000 4 tkinter python-3.x
我已经阅读了许多线程和其他资源,试图找到处理此问题的正确方法,但我还没有找到任何适用于我的应用程序的内容。这就是我想要实现的目标。
当查询完成并将数据插入列表框完成后,我似乎无法将数据插入留出 1 个字符空间。
我正在使用 pack() 并且我已经阅读了 tkinter 手册,并尝试了每个可用的示例以及在此处的各个线程上找到的其他示例。
小部件:
output = tkinter.Listbox(window_2, height = 20, font='Times 10',
width=42, bd=1, bg = '#FFD599', fg = '#9A0615', selectmode=SINGLE)
output.pack()
output.place(x=210, y=195)
Run Code Online (Sandbox Code Playgroud)
我尝试使用 pack() 尝试 padx 和 pady,但没有成功,尽管这与 Text 小部件一起成功运行。我还尝试使用我在网站上找到的一些替代方案,但在插入数据时都没有成功地为列表框添加边距。
有什么建议吗?
pack和padx/pady选项ipadx/ipady不会影响列表框中的数据。列表框本身没有任何添加内部边距的选项。
为了获得列表框内部的边距,我通常做的是给它一个零borderwidth和highlightthickness,然后将它放在具有相同背景颜色的框架中,并让框架作为边框。然后,您可以在边框和列表框之间添加所需的任何填充。
这也很方便,因为您可以将滚动条放在框架内,使其看起来像是在列表框内,而实际上并不在列表框内。
例子:
import tkinter as tk
root = tk.Tk()
root.configure(background="gray")
listbox_border = tk.Frame(root, bd=1, relief="sunken", background="white")
listbox_border.pack(padx=10, pady=10, fill=None, expand=False)
listbox = tk.Listbox(listbox_border, width=20, height=10,
borderwidth=0, highlightthickness=0,
background=listbox_border.cget("background"),
)
vsb = tk.Scrollbar(listbox_border, orient="vertical", command=listbox.yview)
listbox.configure(yscrollcommand=vsb)
vsb.pack(side="right", fill="y")
listbox.pack(padx=10, pady=10, fill="both", expand=True)
for i in range(100):
listbox.insert("end", "Item #{}".format(i))
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4114 次 |
| 最近记录: |