2015-07-03 191 views
0

我有Tkinter的兩個問題:的Python:適應顯示屏幕尺寸

  1. 有沒有一種方法來檢測所使用的屏幕尺寸,並根據此參數adapat GUI顯示?
  2. 如何在標籤中更改Tkinter中的文本大小?
+0

'root.winfo_screenwidth()'和'root.winfo_screenheight()' –

回答

1

對於屏幕尺寸:

import Tkinter as tk 
x = tk.Tk() 
print(x.winfo_screenwidth(), x.winfo_screenheight()) 

對於文本大小:

import tkFont 

... 
f = tkFont.Font(size=100) 
label = tk.Label(self, text='Big text', font=f) 
.... 

要調整文字大小屏幕尺寸,你只需要拿出某種字體縮放算法,即會將winfo_screenwidthwinfo_screenheight轉換爲適當的sizetkFont.Font

1

正如在評論中提到的,您可以使用窗口方法winfo_screenwidth() & winfo_screenheight()來查找顯示的大小。要更改標籤的文字大小,只需編輯Label小部件的font配置選項即可。

font可以使用簡單的字符串值(更改字體的一個參數,如大小或字體)來更改,或者可以給它一個字符串值tuple以編輯多個參數。你可以看到如何使用這個方法的例子,以及窗口方法,在我的例子:

例子:

from Tkinter import * 

root = Tk() 

#Center widget: Half screen dimension - half window dimension 
root.geometry("350x150+%d+%d" %(((root.winfo_screenwidth()/2.) - (350/2.)), ((root.winfo_screenheight()/2.) - (150/2.)))) 
l = Label(root, font = ('consolas', '20', 'italic'), text = "This is a label", justify = CENTER).pack(pady = (50, 0)) 
root.mainloop() 
+0

在你的根geometrt方法中,這種微積分的目的是什麼? – ChiPlusPlus

+0

我用它來居中屏幕;我爲窗口寬度/高度(350x150)選擇了任意大小。然後我爲x pos選擇了一半(屏幕寬度的一半 - 窗口寬度的一半),並且類似地(屏幕高度的一半 - 窗口高度的一半)爲y pos。這使窗口(相對)位於屏幕的中心。 y位置通常不居中,因爲這不包括窗口周圍的邊界。 – maccartm