我正在開發一個 tkinter 腳本,該腳本將在其下方顯示一些文本和影像,但有時該影像將不存在。無論哪種方式,我都希望程式根據它可能的最大大小動態選擇字體大小,而文本仍然適合標簽中的一行或包裝,只要它填滿所有空間。
我知道我可以通過使用來獲得標簽大小:self.height = text.winfo_height()但不確定如何使用它以及邏輯是什么,因此我可以找出為標簽文本設定的正確字體大小。您可以在螢屏截圖中看到文本示例,但請記住,在某些情況下文本可能會更長,有時它們可??能是影像,所以我需要它是動態的。任何幫助將非常感激。:)圖片
我今天嘗試的一件事是根據標簽的像素高度來做字體大小,但這當然使它太大了,因為每個字母都是標簽的大小:
text = Text(
self.root)
text.insert(END, self.text_in_file)
text.pack(expand=True, fill=BOTH)
text.update()
self.height = text.winfo_height()
self.main_font = TkFont.Font(size = -text.winfo_height())
text.config(font = self.main_font)
text.pack(expand=True, fill=BOTH)
uj5u.com熱心網友回復:
如果要測量特定字體中文本字串的呈現寬度,可以使用measure字體上的方法。高度是字體的一個屬性,可以通過metrics字體的方法獲得。
font = Font(...)
width = font.measure("Hello, world")
height = font.metrics()['linespace']
有了這些資訊,您可以使用回圈嘗試不同的字體大小,直到找到適合您的按鈕的大小。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/527596.html
上一篇:如何用'FEED_URI和'FEED_FORMAT'替換scrapy2.X版中的'FEEDS'?使用PythonTkinter的GUI應用程式
