2014-04-16 29 views
0

我正在使用Tkinter在python中創建我的GUI,並且我遇到了調整大小的問題。我正在使用網格佈局機制,並且我的文本小部件的寬度設置爲100,是否有任何方法可以計算可以適合屏幕的字符數?這樣我就可以在啓動時將寬度設置爲該數字,並將我的文本元素「拉伸」到此數字。 有一些已知的數字,其中一個字符像10px那麼我們可以將屏幕分辨率的寬度除以10,這就是適合整個屏幕的數字?Tkinter計算在屏幕上適合的字符數

+1

取決於字體。在大多數字體中,不同的字符不具有相同的大小(像這種字體),'除非你使用等寬字體(像這樣)' –

+0

我使用的是默認字體,我沒有改變它,也沒有意圖改變它。 – Dean

+2

看看[這個](http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/fonts.html)。似乎有一個「度量」函數來確定某個文本在給定字體中的寬度。 –

回答

1

嚴格來說,您應該嘗試使GUI適應環境,而不是相反。因此,你應該讓你的文本小部件有適當的包裝(字符包裝或單詞包裝)或關閉包裝並在其上放置一個水平滾動條。完成之後,您就可以最大化整個窗口,並且事情將(適當地;取決於獲得佈局指令的權利)適應。

但是,如果你想以另一種方式來做,你可以用你想要做的測量字體(因爲所有的字體都不同,字體大小很明顯),並使用它的measure method來解決事情有多寬。理想情況下,您將測量真實文本(這與可變寬度字體有很大關係),但如果您不知道它,則可以改爲製作一串重複的字符並對其進行測量。 (我建議0,因爲這是Tk在沒有更好選擇的情況下內部使用的「默認」字符,並且它在大多數字體中的寬度在iM之間;您也可以使用相同的想法。)

+0

謝謝我最終解決了如何使用框架來實現這一點。所以現在文本小部件成功調整大小。 – Dean