第1-2讲,tkinter设置窗体属性及获取属性

Posted 家乐福的搬砖日常

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第1-2讲,tkinter设置窗体属性及获取属性相关的知识,希望对你有一定的参考价值。

了解窗体有什么属性

  窗体有属性可以设置,我们可以用 keys() 方法来查看一下。

  以下代码中 print(root.keys())  功能就是在终端输出窗体window可以设置的属性。完整代码如下:

import  tkinter as tk

#创建一个窗口
window=tk.Tk()

#输出窗口的属性
print(window.keys())#显示窗口
window.mainloop()

输出结果:

[\'bd\', \'borderwidth\', \'class\', \'menu\', \'relief\', \'screen\', \'use\', \'background\', \'bg\', \'colormap\', \'container\', \'cursor\', \'height\', \'highlightbackground\',
\'highlightcolor\', \'highlightthickness\', \'padx\', \'pady\', \'takefocus\', \'visual\', \'width\']

看上去窗体有很多属性,但是,我们平时常用的属性值就那么几个,其它不太常用的属性设置,我们可以暂时不用管它们。

用config()方法设置窗体属性 

  为窗体属性以及组件(控件)属性设置的方法有2种。第1种方法是用config()  或 configure()  

window.config(bg=\'yellow\',cursor=\'hand2\',width=200,height=100)
window.configure(bg=\'yellow\',cursor=\'hand2\',width=200,height=100)
 以上两句代码,作用是一样的,(以后就我就采用config()方法)上面代码作用就是让窗口背景设置为黄色,窗口范围内的鼠标形态变成手形,宽度为200,高度为100。
全部代码,如下:
import  tkinter as tk

#创建一个窗口
window=tk.Tk()

#输出窗口的属性
print(window.keys())
window.config(bg=\'yellow\',cursor=\'hand2\',width=200,height=100)
window.configure(bg=\'yellow\',cursor=\'hand2\',width=200,height=100)

#显示窗口
window.mainloop()

显示效果如下:

 用config()方法,可以一次为1个或多个属性进行设置。

通过字典键设置窗体属性

通过字典设置窗体属性,只可为一个属性单独设置。如:

window[\'bg\']=\'yellow\'
window[\'cursor\']=\'hand2\'
window[\'width\']=200
window[\'height\']=100

如果为一个不存在的属性设置,就会被 系统报TclError 错误。

获取窗体属性之方法1

将上面讲解的用字典键来设置窗体方法改一下,去=号,不赋值,就可以得到属性值。如:

window[\'height\']    # 获取窗体高度
window[\'bg\']      # 获取窗体背景颜色
window[\'cursor\']   # 获取窗体的鼠标样式

我们可以把获取的属性性赋值给别的变量,或者直接打印出来。

import  tkinter as tk

#创建一个窗口
window=tk.Tk()

#输出窗口的属性
print(window.keys())
#window.config(bg=\'yellow\',cursor=\'hand2\',width=200,height=100)
#window.configure(bg=\'yellow\',cursor=\'hand2\',width=200,height=100)
window[\'height\']=300
window[\'bg\']=\'red\'
window[\'cursor\']=\'hand2\'
print(window[\'height\'])
print(window[\'bg\'])
print(window[\'cursor\'])
#显示窗口
window.mainloop()

上面代码中,我们可以用print把窗体的属性值打印出来。

注意,如果窗体没有设定属性值,用这种方法,无法得到正确的值。我们把3,4,5句代码去除,再运行一下,就会发现输出结果提示错误。

获取窗体属性值之方法2

第二种方法,是用cget() 方法来获取窗体属性值 。如:

window.cget(\'height\')
window.cget(\'bg\')
window.cget(\'cursor\')

同样,我们也可以把获取的属性性赋值给别的变量,或者直接打印出来。

import  tkinter as tk

#创建一个窗口
window=tk.Tk()

#输出窗口的属性
print(window.keys())
#window.config(bg=\'yellow\',cursor=\'hand2\',width=200,height=100)
#window.configure(bg=\'yellow\',cursor=\'hand2\',width=200,height=100)
window[\'height\']=300
window[\'bg\']=\'red\'
window[\'cursor\']=\'hand2\'
#print(window[\'height\'])
#print(window[\'bg\'])
#print(window[\'cursor\'])
print(window.cget(\'height\'))
print(window.cget(\'bg\'))
print(window.cget(\'cursor\'))

#显示窗口
window.mainloop()

上面代码中,我们可以用print把窗体的属性值打印出来。

  注意,这种方法跟第1种方法一样,如果窗体没有设定属性值,就无法得到正确的属性值。我们把第3句代码去除,再运行一下,就会发现,输出结果提示错误。

  总结:上述的2种设置属性方法和2种设置属性方法对于后面要讲解的组件(在其它的编程语言里,组件也叫控件),也一样管用。

其它方法获取窗体的宽和高

window.winfo_width()  # 获取窗体的宽
 
window.winfo_height()  # 获取窗体的高

我们用下面的代码输出窗体宽和高

from tkinter import *
window=Tk()
window.geometry(\'300x150+888+444\') # 设置窗体大小和位置
window.update()  # 刷新窗体
print(window.winfo_width())  # 输出窗体宽
print(window.winfo_height()) # 输出窗体高
window.mainloop()

注意第4行代码,这是刷新窗体语句,缺少这句,输出的结果不正确,一定要加上这行代码才行。

  去除第3行设置窗体大小的代码,一样可以得到窗体的宽和高。

其它方法获取窗体的位置

window.winfo_x()  # 获取窗体左边距

window.winfo_y()  # 获取窗体上边距

用下面的代码输出窗体的位置:

from tkinter import *
window=Tk()
window.geometry(\'300x150+888+444\') # 设置窗体大小和位置
window.update()  # 刷新窗体
print(window.winfo_x())  # 输出窗体左边距
print(window.winfo_y()) # 输出窗体上边距
window.mainloop()

tkinter窗体居中显示的代码

设置窗体位置的代码如:

root.geometry(\'±100±200\')

第1个参数为:+数值,表示窗口左边离屏幕左边的距离

    -数值,表示窗口右边离屏幕右边的距离

第2个参数为:+数值,表示窗口上边离屏幕上边的距离

    -数值,表示窗口下边离屏幕下边的距离

大家自行把上面代码的第三行代码改成下面的其中一条代码,查看窗体在屏幕的不同位置。

window.geometry(\'+100+200\')  # 窗体在屏幕左上角
window.geometry(\'-100-200\')  # 窗体在屏幕右下角
window.geometry(\'+100-200\')  # 窗体在屏幕左下角
window.geometry(\'-100+200\')  # 窗体在屏幕右上角

但在实际的程序编写中,让窗体居中显示可能更有实用性。代码如下:

a,b=300,150       # a为窗体宽度,b为窗体的高度
c=(window.winfo_screenwidth()-a)/2    # (屏幕宽度-窗体宽度)/2
d=(window.winfo_screenheight()-b)/2   # (屏幕高度-窗体高度)/2
window.geometry(\'%dx%d+%d+%d\' % (a,b,c,d)) # c为窗口左边离屏幕左边的距离,d为窗口上边离屏幕上边的距离

以上tkinter窗口居中显示代码你可以收藏起来,使用时,只要改一下a,b的数值设置就可以行了。

解释:

  root.geometry(\'%dx%d+%d+%d\' % (a,b,c,d)) 这一代码需要你懂得python的字符串格式化知识,这里是使用%操作符来格式化字符串。

  root.winfo_screenwidth() # 为获取屏幕的宽度,括号不能省

  root.winfo_screenheight() # 为获取屏幕的高度,括号不能省。

winform 常用窗体属性

WinForm常用窗体属性:

 

Form常用属性

AutoSizeMode属性 :值是: GrowAndShrink不能调整窗体大小 ;值是:GrowOnly 可以改变大小

(1)Name属性:用来获取或设置窗体的名称。

(2)WindowState属性:用来获取或设置窗体的窗口状态。

(3)StartPosition属性:用来获取或设置运行时窗体的起始位置。

(4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。

(5)Width属性:用来获取或设置窗体的宽度。

(6)Heigth属性:用来获取或设置窗体的高度。

(7)Left属性:用来获取或设置窗体的左边缘的 x 坐标(以像素为单位)。

(8)Top属性:用来获取或设置窗体的上边缘的 y 坐标(以像素为单位)。

(9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。

(10)MaximumBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。

(11)MinimizeBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。

(12)AcceptButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按 ENTER 键时就相当于单击了窗体上的该按钮。

(13)CancelButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按ESC键时就相当于单击了窗体上的该按钮。

(14)Modal属性:该属性用来设置窗体是否为有模式显示窗体。

(15)ActiveControl属性:用来获取或设置容器控件中的活动控件。

(16)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。

(17)AutoScroll属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。

(18)BackColor属性:用来获取或设置窗体的背景色。

(19)BackgroundImage属性:用来获取或设置窗体的背景图像。

(20)Enabled属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。

(21)Font属性:用来获取或设置控件显示的文本的字体。

(22)ForeColor属性:用来获取或设置控件的前景色。

(23)IsMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面 (MDI) 子窗体。

(24)IsMdiContainer属性:获取或设置一个值,该值指示窗体是否为多文档界面 (MDI) 中的子窗体的容器。

(25)KeyPreview属性:该属性用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。

(26)MdiChildren属性:数组属性。

(27)MdiParent属性:该属性用来获取或设置此窗体的当前多文档界面 (MDI) 父窗体。

(28)ShowInTaskbar属性:该属性用来获取或设置一个值,该值指示是否在 Windows 任务栏中显示窗体。

(29)Visible属性:该属性获取或设置一个值,该值指示是否显示该窗体或控件。

(30)Capture属性:如果该属性值为true,则鼠标就会被限定只由此控件响应,不管鼠标是否在此控件的范围内。

(1)Show方法

该方法的作用是让窗体显示出来,其调用格式为:

窗体名.Show();

(2)Hide方法

该方法的作用是把窗体隐藏出来,其调用格式为:

窗体名.Hide();

(3)Refresh方法

该方法的作用是刷新并重画窗体,其调用格式为:

窗体名.Refresh();

(4)Activate方法

该方法的作用是激活窗体并给予它焦点。其调用格式为:

窗体名.Activate();

(5)Close方法

该方法的作用是关闭窗体。其调用格式为:

窗体名.Close();

(6)ShowDialog方法

该方法的作用是将窗体显示为模式对话框。其调用格式为:

窗体名.ShowDialog(); 

 

以上是关于第1-2讲,tkinter设置窗体属性及获取属性的主要内容,如果未能解决你的问题,请参考以下文章

WinForm窗体常用属性

Tkinter 窗口属性设置

winform 常用窗体属性

用户界面设计- 窗体的主要属性

C#窗体及控件的快捷键 设置

Winfrom 窗体常用属性