当前位置:首页 » tkinter » 正文

用tkinter做一个窗体,只要3行代码

一个完整的tkinter程序的3部分

  一般来说,一个完整的tkinter程序就3个部分:  

  第1部分是:导入模块部分

  第2部分是:生成窗体,创建组件并处理事件的相关代码

  第3部分是:维持窗体,等待事件发生的语句:mainloop

用代码创建我们的第一个窗体

  用tkinter代码建立一个窗体,很容易,只要3行代码:

from tkinter import *   # 使用 import 导入模块
root=Tk()               # 建立一个名为root的窗体
root.mainloop()         # 维持住窗体,等待事件的发生

  解释:

  1. 第1行代码,就是导入tkinter模块,如果没有导入模块语句,那运行的结束肯定出错。

  2. 第2行代码,用Tk()方法生成一个窗体,我取窗体名为 root ,当然你也可以取别的名字,wincarform5 my_beautiful等等,只要合乎python变量名的要求,其实窗体名,你还可以取中文名称,如:汽车,大象,学校等等,也是可以的,但不推荐用中文名称。

  3. 最后一行代码也不可缺少,缺少最后一行代码,不报错,但窗体就不能维持住,窗体就不会出现屏幕上,最后这行代码总是放在程序代码的最后面。

注意代码里各变量是区别大小写的,Tk() ,其中T是大写,k是小写字母。


运行上面的代码,只能得到一个默认的大小,默认标题,默认图标的窗体,如下图所示。

        form.PNG

此文章由 www.wb98.com 原创,转载请保留链接。

自定义窗体

以上建立的默认的窗体肯定不能满足大家的要求,大家可能对窗体大小要不同的要求,也要求窗体图标等方面有不同的要求,下面的代码可以帮我们来自定义一个窗体。

自定义标题语句:root.title('第一个窗体')

自定义图标语句:root.iconbitmap('car.ico') 注意:必须事先准备一个图标,名称叫car,格式是ico,保存到这个py文件的同一个目录里。

自定义大小语句:root.geometry('300x150')  第一个参数300为宽,第二个参数150为高,中间是小写的字母x

 

  在root=Tk() 代码下面加入以上3行代码,就建立了一个自定义大小,自定义图标及标题的窗体。

from tkinter import *   # 使用 import 导入模块
root=Tk()               # 建立一个名为root的窗体
root.title('第一个窗体') # 设置窗体的标题
root.iconbitmap('car.ico') # 设置窗体的图标
root.geometry('300x150') # 设置窗体大小及位置
root.mainloop()   # 维持住窗体,等待事件的发生

运行结果:

  form2.PNG


  上面这个窗体出现的位置总是默认的位置,即窗体的左上角。我希望它出现的位置也可以自定义,加入下面的代码就可以做到。

  root.geometry('+800+200')

   +800 表示窗体左边界距屏幕最左边为800

   +200 表示窗体上边界距屏幕最上边为200


  其实窗体大小及位置代码,可以合并为一句:

   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()   # 维持住窗体,等待事件的发生


运行结果如下,很明显,最大化图标变灰,无法操作了,出现的窗体也发生了变化。

form3.PNG


其实你也可以只禁止调节宽度,或只禁止调节高度。只要将对应参数调整为True就表示可以调节。你也可以为了输入方便,用1代替True,用0代替False,如:

 root.resizable(0,1) # 窗体禁止调节,高度可调节


有时,我们需要窗体置顶,只要一行代码就可以做到。丶丌皛

root.attributes("-topmost", True)

你可以用1代替第二个参数True,运行结果也是一样的,这个窗体可以置顶于所有的普通窗体之上。

跟窗体有关的一些有用代码

以下是一些跟窗体有关的常用代码,基本上就是一句代码搞定一项功能,大家可以收藏这篇文章,以后编程时一定用得着。对于学习tkinter新手,下面的知识了解即可,以后有机会再讲解。

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窗体转化模式窗口

小结一下导入模块的方式

总结一下,由于导入模块写法的不同,下面的代码写法也会有所不同:(以后我会专门写文章讲解tkinter导入模块的方法)

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()         # 维持住窗体,等待事件的发生


来源:济亨网

本文链接:http://wb98.com/post/294.html

    << 上一篇 下一篇 >>

    湘公网安备 43011102000514号 - 湘ICP备08100508号