0
如何在tkinter中創建應用程序,以適應適合較小PC尺寸的文本大小和尺寸?例如,在其他語言中,您可以指定文本大小和尺寸爲百分比。有沒有辦法在Python 3中做到這一點?我正在使用tkinter作爲我的GUI工具包Tkinter自適應文本和尺寸
如何在tkinter中創建應用程序,以適應適合較小PC尺寸的文本大小和尺寸?例如,在其他語言中,您可以指定文本大小和尺寸爲百分比。有沒有辦法在Python 3中做到這一點?我正在使用tkinter作爲我的GUI工具包Tkinter自適應文本和尺寸
一種解決方案是make a theme or styles,您應用了自己設置的縮放算法。這裏只是一個簡單的例子,只有一個按鈕。
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
# Base size
normal_width = 1920
normal_height = 1080
# Get screen size
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
# Get percentage of screen size from Base size
percentage_width = screen_width/(normal_width/100)
percentage_height = screen_height/(normal_height/100)
# Make a scaling factor, this is bases on average percentage from
# width and height.
scale_factor = ((percentage_width + percentage_height)/2)/100
# Set the fontsize based on scale_factor,
# if the fontsize is less than minimum_size
# it is set to the minimum size
fontsize = int(14 * scale_factor)
minimum_size = 8
if fontsize < minimum_size:
fontsize = minimum_size
# Create a style and configure for ttk.Button widget
default_style = ttk.Style()
default_style.configure('New.TButton', font=("Helvetica", fontsize))
frame = ttk.Frame(root)
button = ttk.Button(frame, text="Test", style='New.TButton')
frame.grid(column=0, row=0)
button.grid(column=0, row=0)
root.mainloop()
這將取決於你使用什麼類型的小部件,如何將其應用到你的GUI。例如tk.Button與ttk.Button不同。從我所瞭解的ttk小部件來說,當涉及本地外觀比tk小部件好,但我沒有自己測試過。
要將其應用於完整的GUI,您需要查看GUI中使用的不同小組件,並查看可以在哪裏進行縮放。你需要調整scale_factor來讓它看起來不錯。您可以通過將screen_width和screen_height設置爲您自己選擇的分辨率來測試不同的「屏幕尺寸」。
這裏是一個風格和主題tutorial from TkDocs
你問一個標籤,或整個GUI,如文字處理或表格要填寫? –
我是指GUI窗口中的所有元素。文本大小,框架寬度,輸入框寬度,圖像大小,e.t.c。當我使用應用程序讓我們說一個迷你PC時,只有它的一部分適合這個小屏幕。我希望它能夠適應,並且無論屏幕大小如何都適合一切。 –