幾年前我在android中看到過這個函式(布局?),但我想不起來這個函式名是什么......
我需要一個自動替換小部件。如果新小部件的寬度與視窗的末尾相交,我想將該小部件移動新行。
以下是我的預期輸出。


我認為,獲取寬度并計算新的小部件位置將解決它。但是,我認為這是非常普遍的需求。tkinter 支持嗎?
uj5u.com熱心網友回復:
由于 tkinter 有一個畫布,可以讓您絕對控制定位,因此您可以在添加專案時通過一點數學來完成此操作。您必須添加代碼以在調整視窗大小時重新定位小部件。
一種更簡單的方法是使用文本小部件,它支持嵌入的影像或小部件,并支持換行。
這是一個演示:
import tkinter as tk
root = tk.Tk()
toolbar = tk.Frame(root)
text = tk.Text(root, wrap="word", yscrollcommand=lambda *args: vsb.set(*args))
vsb = tk.Scrollbar(root, command=text.yview)
toolbar.pack(side="top", fill="x")
vsb.pack(side="right", fill="y")
text.pack(side="left",fill="both", expand=True)
COUNT = 0
def add_widget():
global COUNT
COUNT = 1
widget = tk.Label(root, width=12, text=f"Widget #{COUNT}", bd=1, relief="raised",
bg="#5C9BD5", foreground="white", padx=4, pady=4)
text.configure(state="normal")
text.window_create("insert", window=widget, padx=10, pady=10)
text.configure(state="disabled")
add_button = tk.Button(toolbar, command=add_widget, text="Add")
add_button.pack(side="left")
for i in range(9):
add_widget()
root.mainloop()

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/350125.html
下一篇:洗掉輸入框
