2017-03-11 38 views
0

我的GUI在tkinter的winXP中編程,但我發現它顯示不同的大小。我學習它是因爲系統defult字體不同。在CMD中使用「控件/名稱Microsoft.Personalization/page pageColorization」可以打開此頁面。但我如何設置Python代碼中的項目和字體?tkinter的大小是xp和win7之間的差異

+0

爲什麼它需要是完全相同的大小?通常tkinter對處理字體和分辨率的差異非常好,除非你依靠一個帶有明確座標的窗口布局(例如:'place'),這通常是一個壞主意。 –

+0

我使用網格進行佈局,但不同幀的左邊緣和右邊緣不在win7中,並且它在winXP中對齊。 – xxx88qqq

+0

爲什麼不解釋你的問題?該問題的解決方案可能與您如何「在python代碼中設置項目和字體」的答案不同。 –

回答

0

從版本8.5開始,Tk定義了一些全局命名字體,它們通過讀取系統主題定義的字體在Windows上初始化。所以TkDefaultFont是大多數Tk控件使用的命名字體,如果沒有被覆蓋。這意味着您更改了更改TkDefaultFont並且大多數控件將使用新的字體定義。

否則,每個控件都有一個要傳遞字體的-fontconfiguration option。還有option數據庫可以通過widget類來分配選項。

在tkinter中,Tk字體處理由tkinter.font包提供,並且使用它可以訪問和修改內置命名字體對象。

import tkinter.font 
# show the defined fonts 
print(tkinter.font.names()) 
# access the default UI font 
f = tkinter.font.nametofont('TkDefaultFont') 
print(f.configure()) 
# modify the default font 
f.configure(family='Tahoma') 
print(f.configure()) 
+0

謝謝,我想修改'TkDefaultFont',你能告訴我哪個文件在哪裏?我沒有在tkinter中找到它。 – xxx88qqq

+0

添加到答案,但也請參閱https://www.tutorialspoint.com/python/tk_fonts.htm – patthoyts

+0

Thankyou,它很棒! – xxx88qqq

相關問題