python自制图形界面_用 Python 打造属于自己的GUI图形化界面【转】

Thinter是python的标准GUI库。python使用Tkinter可以快速地创建GUI应用程序。当然常用的GUI库还有PyQt5,我们只需要知道这两个常用的即可,如果你真的想学习的话。由于Thinter属于python标准库,就不需要使用pip安装,直接导入使用即可。

① 显示窗口

root.mainloop()显示窗口;

窗口默认会显示在电脑屏幕的左上角,非常小(后面需要改进);

from tkinter import *

from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。

root = Tk()

# 显示窗口

root.mainloop()

"""

注意到:该窗口默认的显示位置在哪里,观察我下面的截图。

窗口默认显示在整个电脑屏幕的左上角,并且窗口大小特别小。

"""

结果如下:

715460-20201119153956410-1760694781.png

注意:上面2行代码,首先实例化一个窗口对象,然后我们展示了这个窗口,让其真正显示出来。接下来我们的操作,就是针对这个窗口的一系列优化操作,请注意:这个优化操作使用的代码,都是放在这2句代码中间。

② 设置窗口大小

root.geometry("600x400")调整窗口的大小;

该方法中传入的是"宽x高",但是需要注意这个乘号是小写的英文字母x,而不是这个*表示的乘号;

from tkinter import *

from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。

root = Tk()

# 窗口大小

root.geometry("600x450")

# 显示窗口

root.mainloop()

结果如下:

715460-20201119154050157-1241643423.png

③ 调整窗口位置(使用的是同一个方法)

root.geometry("600x400+374+182")调整窗口的大小+位置;

374,182表示的是窗口顶点,距离电脑左上角的坐标。这个数字怎么得到的呢?直接借助微信截图就可以显示了。

715460-20201119154218032-925336585.png

操作代码如下:

from tkinter import *

from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。

root = Tk()

# 窗口大小

root.geometry("600x450+374+182")

# 显示窗口

root.mainloop()

结果如下:

715460-20201119154259095-1544466556.png

④ 设置窗口的标题

root.title()设置窗口的标题;

默认的窗口标题是tk;

from tkinter import *

from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。

root = Tk()

# 窗口大小

root.geometry("600x450+374+182")

# 窗口标题

root.title("我的个性签名设计")

# 显示窗口

root.mainloop()

结果如下:

715460-20201119154341515-1524380843.png

⑤ 添加标签控件,并定位

Label(root,text="签名")添加标签控件

第一个参数传入的就是实例化的那个root窗口对象;第二个参数传入的要显示的那个标签文本;

仅仅添加标签控件后,还不行,必须要指定一个位置后,该标签控件才会真正展示出来,即最后需要调用grid()方法后,才会显示标签控件;

from tkinter import *

from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。

root = Tk()

# 窗口大小

root.geometry("600x450+374+182")

# 窗口标题

root.title("我的个性签名设计")

# 添加标签控件

label = Label(root)

# 定位

label.grid()

# 显示窗口

root.mainloop()

结果如下:

715460-20201119154424772-1703134157.png

当然你也可以想到,这个方法肯定还可以修改字体样式、字体大小、字体颜色呀?具体怎么操作呢?我们接着往下面看。

from tkinter import *

from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。

root = Tk()

# 窗口大小

root.geometry("600x450+374+182")

# 窗口标题

root.title("我的个性签名设计")

# 添加标签控件

label = Label(root,text="签名",font=("宋体",25),fg="red")

"""

text参数用于指定显示的文本;

font参数用于指定字体大小和字体样式;

fg参数用于指定字体颜色;

"""

# 定位

label.grid()

# 显示窗口

root.mainloop()

结果如下:

715460-20201119154506316-2054796075.png

⑥ 添加输入框,并定位

Entry(root,font=("宋体",25),fg="red")添加输入框

第一个参数传入的就是实例化的那个root窗口对象;第二个参数可写可不写,指的是我们输入的字体的字体样式和字体大小;第三个参数同样可写可不写,表示的是我们输入的字体的颜色。

同样,仅仅使用上述代码并不会显示输入框,只有调用grid()方法,定位后,才会真正显示这个输入框;

from tkinter import *

from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。

root = Tk()

# 窗口大小

root.geometry("600x450+374+182")

# 窗口标题

root.title("我的个性签名设计")

# 添加标签控件

label = Label(root,text="签名",font=("宋体",25),fg="red")

# 定位

label.grid()

# 添加输入框

entry = Entry(root,font=("宋体",25),fg="red")

entry.grid()

# 显示窗口

root.mainloop()

结果如下:

715460-20201119154558453-627778533.png

注意:很明显这样的摆放方式,并不是我们想要的。我们需要调整一下,下面我们专门花一个小节时间,去讲述怎么调整这个摆放位置。

⑦ 调整控件的摆放位置

首先我们需要搞明白,显示窗口究竟采用的是什么样子的布局方式呢?其实是网格式的布局方式。那么什么又是网格式的布局方式呢?excel表格你知道吧,一个个的格子就是网格式的布局方式。

715460-20201119154624119-628350853.png

好了!知道了上述原理后,我们现在来真正的调整这个控件摆放位置啦。

from tkinter import *

from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。

root = Tk()

# 窗口大小

root.geometry("600x450+374+182")

# 窗口标题

root.title("我的个性签名设计")

# 添加标签控件

label = Label(root,text="签名:",font=("宋体",25),fg="red")

# 定位

label.grid()

"""

label.grid()等价于label.grid(row=0,column=0)

"""

# 添加输入框

entry = Entry(root,font=("宋体",25),fg="red")

entry.grid(row=0,column=1)

"""

row=0,column=1表示我们将输入框控件,放在第1行第2列的位置;

python语言中,这个下标是从0开始的。

"""

# 显示窗口

root.mainloop()

结果如下:

715460-20201119154709421-610315004.png

转自

用 Python 打造属于自己的GUI图形化界面 https://mp.weixin.qq.com/s/48dKD6uZe7DyRO6i_4Qe6A

⑧ 添加点击按钮

Button(root,text="签名设计",font=("宋体",25),fg="red")添加输入框

第一个参数传入的就是实例化的那个root窗口对象;第二个参数展示的是我们这个点击按钮的标签;第三个参数可写可不写,指的是点击按钮字体的字体样式和字体大小;第四个参数同样可写可不写,表示的是点击按钮字体的颜色。

同样,仅仅使用上述代码并不会显示输入框,只有调用grid()方法,定位后,才会真正显示这个点击按钮;

from tkinter import *

from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。

root = Tk()

# 窗口大小

root.geometry("600x450+374+182")

# 窗口标题

root.title("我的个性签名设计")

# 添加标签控件

label = Label(root,text="签名:",font=("宋体",25),fg="red")

# 定位

label.grid()

# 添加输入框

entry = Entry(root,font=("宋体",25),fg="red")

entry.grid(row=0,column=1)

# 添加点击按钮

button = Button(root,text="签名设计",font=("宋体",25),fg="blue")

button.grid(row=1,column=1)

# 显示窗口

root.mainloop()

结果如下:

715460-20201119154858841-1576791463.png

至此界面已经简单搭建起来了,接下来要做的就是输入一个名字,点击签名设计后,会显示我的这个签名,此时就需要借助爬虫啦!明天我们将会发布该文的下篇哦,敬请期待。

⑨ 点击按钮自定义功能

这里最后补充这个知识点,我们点击按钮后,总是希望能够给我们返回点什么,所以呢,需要我们自定义函数。

from tkinter import *

from tkinter import messagebox

def func():

print("我是黄同学")

# 创建窗口:实例化一个窗口对象。

root = Tk()

# 窗口大小

root.geometry("600x450+374+182")

# 窗口标题

root.title("我的个性签名设计")

# 添加标签控件

label = Label(root,text="签名:",font=("宋体",25),fg="red")

# 定位

label.grid()

# 添加输入框

entry = Entry(root,font=("宋体",25),fg="red")

entry.grid(row=0,column=1)

# 添加点击按钮

button = Button(root,text="签名设计",font=("宋体",25),fg="blue",command=func)

button.grid(row=1,column=1)

"""

command=func表示调用最开始定义的func函数。

func函数一定要在这句代码之前,因为这里需要调用这个func函数。

"""

# 显示窗口

root.mainloop()

结果如下:

715460-20201119155013427-944871054.png

非常详细的python图形界面组件开发教程,以代码的形式解析讲解,且所有代码都可直接运行,非常容易上手。 这系列教程完全以代码的形式来写的,目标是:读者看代码和注释就可以理解代码的意思。但这里的读者需要具备的几项技能: 1熟悉python语言的基础,如果还没有,先看一下python的教程吧,英文官方(http://docs.python.org/tut/tut.html); 2对界面编程有一定的了解,知道基本的概念就可以了; 3对Tk有兴趣,别以为她是已经过时的技术,如果丧失了学习的兴趣,那肯定无法完成了; 4不要以Ctrl+C/Ctrl+V的方式使用本教程(虽然它可以这样直接运行),自己输入,你会发现自己原来也会犯这样的错误; 5安装了python2.5且确认安装了Tkinter模块(默认就安装了,如果你没有强制的把它去掉的话),下载python2.5(http://www.python.org/download/); 6如果在阅读教程中有不明白的,不要强迫自己,直接跳过去,继续下一个内容。 Tkinter教程系列教程的特点: 7他不是一本经过文字润色的文章,全部是代码,作者在必要的时候使用注释来解释; 8以组件为章节进行介绍,每个组件又分为不同的例子,各个例子可以单独使用,分别使用序号标注; 9各个例子的使用“注释+序号”的格式表示开始,下一个例子的开始为上一个例子的结束; 10全部使用结构化编程(SP),没有面向对象的概念(OO); 11基本上包含了TKinter的所有的控件,根据每个控件的使用方法,选择性的介绍了其属性和方法,没有全部介绍,全部的介绍查看Tkinter的官方参考(http://www.pythonware.com/library/tkinter/introduction/); 12例子不是百分百的完美,甚至有的例子没有按照Tkinter参考的描述完成,原因由于作者没有看懂:( 13参考书籍:http://www.pythonware.com/library/tkinter/introduction/,如有冲突以Tkinter参考为准
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值