写python界面程序有多种方法,用tkinter代码建立一个窗体,很容易,只要3行代码:
from tkinter import * # 使用 import 导入模块
root=Tk() # 建立一个名为root的窗体
root.mainloop() # 维持住窗体,等待事件的发生
以上代码中,窗体名 root ,也可以取别的名字,win,car,form5, my_beautiful等等,只要合乎python变量名的要求,其实窗体名,你还可以取中文名称,如:汽车,大象,学校…等等,也是可以的,但不推荐用中文名称。
第一行导入tkinter模块的代码必须要,同样最后一行代码也不可缺少,缺少最后一行代码,窗体就不能维持住,窗体就不会出现屏幕上,最后这行代码在不同的程序总是放在最后面。
注意代码里各变量是区别大小写的,Tk() ,其中T是大写,k是小写字母。
运行上面的代码,只能得到一个默认的大小,默认标题,默认图标的窗体,如下图所示。
这样一个默认的窗体肯定不能满足大家的要求,现在我们用几行代码来自定义一个窗体。
自定义标题:
root.title('第一个窗体')
自定义图标:
root.iconbitmap('car.ico')
注意:必须先准备一个图标,名称叫car,格式是ico,保存到这个py文件的同一个目录里。
自定义大小:
root.geometry('300x150')
第一个参数300为宽,第二个参数150为高,中间是小写的字母x
在root=Tk() 代码下面加入以上3行代码,运行结果:
这个窗体的标题,图标,大小都是自定义的。但它再现的位置总是默认的位置,即窗体的左上角。我希望它出现的位置也可以自定义,加入下面的代码就可以做到。
root.geometry('+800+200')
+800 表示窗体左边界距屏幕最左边为800;
+200 表示窗体上边界距屏幕最上边为200
其实以上2句代码,可以合并为一句:
root.geometry('300x150+800+200')
这个窗体是可以调节大小的,有时,我们希望窗体不可以自行调节窗体的大小,以下代码可以让窗体无法调节窗体大小,而且窗体的标题栏上的最大化图标会变为灰。
root.resizable(False,False)
其中第一个参数False表示窗体宽度不可调节,第二个参数表示高度不可以调节。全部代码及运行结果如下:(很明显,最大化图标变灰,无法操作了)
from tkinter import * # 使用 import 导入模块
root=Tk() # 建立一个名为root的窗体
root.title('第一个窗体') # 设置窗体的标题
root.iconbitmap('car.ico') # 设置窗体的图标
root.geometry('300x150+800+200') # 设置窗体大小及位置
root.resizable(False,False) # 设置窗体尺寸是否可调节
root.mainloop() # 维持住窗体,等待事件的发生
其实你也可以只限制不可以调节宽度,或只限制不可以调节高度。只要将对应参数调整为True就表示可以调节。你也可以为了输入方便,用1代替True,用0代替False
有时,我们需要窗体置顶,只要一行代码就可以做到。
root.attributes("-topmost", True)
你可以用1代替第二个参数True,运行结果也是一样的,这个窗体可以置顶于所有的普通窗体。姭嚞灬
以下是一些跟窗体有关的常用代码,基本上就是一句代码搞定一项功能,大家可以收藏它,以后编程时一定用得着。
root.minsize(400, 260) # 设置窗口的最小尺寸,参数为(宽,高)
root.maxsize(750, 650) # 设置窗口的最大尺寸,参数为(宽,高)
root.state('zoomed') # 最大化窗口
root.iconify() # 最小化窗口
root.attributes("-fullscreen", True) # 全屏,没有标题栏
root.state("iconic") # 隐藏窗体
root.withdraw() # 隐藏窗体
root.deiconify() # 让隐藏的窗体再显现
top1.transient(root) # 使窗体top1置顶于root窗口上
root.attributes("-alpha",0.8) #设置窗口透明度,范围为0到1
root.wm_attributes("-transparentcolor", "red") # 设置某种颜色透明
root.overrideredirect(True) # 无标题栏窗体
root.attributes("-toolwindow", True) # 标题栏无最大化,最小化
top1.focus_force() # 窗体top1得到焦点
top1.grab_set() # 将top1窗体转化模式窗口
此文章来自:wb98.com 网站还有相关的系列课程文章,感兴趣的的可以前往。
总结一下,由于导入模块写法的不同,代码写法的不同:
第1种方法:(以后的文章,我大部分情况都采取这种方法)
from tkinter import * # 导入模块写法1
root=Tk() # 这里写法就比较简单
root.mainloop() # 维持住窗体,等待事件的发生
第2种方法:
import tkinter # 导入模块写法2
root=tkinter.Tk() # 这里就必须加前缀tkinter
root.mainloop() # 维持住窗体,等待事件的发生
第3种方法:
import tkinter as tk # 导入模块写法3
root=tk.Tk() # 用别名tk代替tkinter作前缀
root.mainloop() # 维持住窗体,等待事件的发生