2015-07-03 168 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