我正在嘗試使用 tkinter 構建一個導航器應用程式,并且對制作 GUI 和使用 tkinter 非常陌生。當整個視窗調整大小時,我似乎無法弄清楚如何很好地調整小部件的大小。當前調整大小的作業方式如下面的 gif 所示。

最上面的描述是一個 tkinter Message 小部件,中間的導航樹是一個 Checklist,兩個按鈕是常規 Button,Buttons 下方的文本是一個 Label 物件。我使用 .grid() 方法將它們放在 tkinter 根目錄中,并使用 ipadx、ipady、padx 和 pady 根據需要調整它們的大小。
如果視窗的大小調整得有點類似于 Checklist 物件,我希望文本和按鈕不會消失。理想情況下,在調整視窗大小時,我希望文本自動換行并為自己騰出空間。我可以為視窗設定一個最小尺寸,以確保一切都適合,但調整大小仍然不優雅。我似乎也無法弄清楚自動換行。
任何有關如何改進這一點的提示將不勝感激。這個專案的代碼在這個github repo 中。tkinter 應用程式的腳本是 gui_data.py。
uj5u.com熱心網友回復:
這是示例代碼,可幫助您了解調整大小的作業原理。我建議你使用Grid.rowconfigure()和Grid.columnconfigure()
示例代碼:
import tkinter as tk
from tkinter import Grid, Button
root = tk.Tk()
root.title("resize button")
root.geometry("500x500")
# here you need to put on what do you want to use row configure, index(row) and weight
Grid.rowconfigure(root, 0, weight=1) # we use on root, row=0 weight=1
Grid.columnconfigure(root, 0, weight=1)
#configure 2nd row
Grid.rowconfigure(root, 1, weight=1)
#configure 3rd row
Grid.rowconfigure(root, 2, weight=1)
#configure 2nd column
Grid.columnconfigure(root, 1, weight=1)
button1 = Button(root, text="Button1")
button2 = Button(root, text="Button2")
button3 = Button(root, text="Button3")
button1.grid(row=0, column=0, sticky="nsew")
button2.grid(row=1, column=0, sticky="nsew")
button3.grid(row=2, column=0, sticky="nsew")
button1_1 = Button(root, text="Button1_1")
button2_1 = Button(root, text="Button2_1")
button3_1 = Button(root, text="Button3_1")
button1_1.grid(row=0, column=1, sticky="nsew")
button2_1.grid(row=1, column=1, sticky="nsew")
button3_1.grid(row=2, column=1, sticky="nsew")
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/369709.html
上一篇:Xamarin計時器未更新
