Python GUI编程:界面设计(tkinter)

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

作者:xubingtao

来源:分享录xubingtao

Python爬虫、数据分析、网站开发等案例教程视频免费在线观看
https://space.bilibili.com/523606542

前言

此篇文章介绍的是有关GUI(Graphical User Interface)图形用户界面的设计。使用到的库是tkinter,tkinter库在python3版本开始就是自带的库,IDLE就是通过这个库设计的。再过几天会更新其他内容(输入框、滚动条、分页、多行文本、下拉框)。

相关介绍

Python GUI编程(Tkinter)-菜鸟教程

Python Tkinter Wiki

Tk图形用户界面(GUI)

一、函数方法介绍

下面的函数方法是基于import tkinter和from tkinter import ttk的导入来的。如果你使用的是imort tkinter as tk这种的,将下面的tkinter替换成你所定义的别名就行。

函数方法中有些方法只是简单介绍,详细的内容会在之后的步骤提及。

组件的放置和删除方法是通用的

二、导入tkinter库

通常导入的话使用下面第一行代码进行导入就行

import tkinter

但对于某些功能时,需要导入一个ttk模块

import tkinter
from tkinter import ttk

三、窗口

步骤[5]的删除窗口对其他的组件是通用的,之后不再赘述

[1]. 创建

创建窗口的方法比较简单,执行tkinter.Tk()即可。

因为我们需要对这个窗口进行操作,所以得用一个实例对象来保存这个窗口。

import tkinter
window = tkinter.Tk()

[2]. 设置标题

上一个步骤执行完毕后,默认会给窗口设置一个名为tk的标题。
如果我们需要设置自定义的标题时,就得用到title方法。

import tkinter
window = tkinter.Tk()
window.title('标题')

[3]. 设置大小

在设置大小时,使用geometry方法,参数里的x是英文字母,大小写不会有影响。

对于200x300的大小,第一个参数200是宽度,第二个参数300是高度。
如果没有设置窗口大小时,默认大小为200x200

import tkinter
window = tkinter.Tk()
window.title('标题')
window.geometry('200x300')

[4]. 设置背景色

使用configure方法设置background参数的值,来改变背景色。

改变背景色时传入的参数大小写皆可

对于其他组件如文本、按钮等,同样能对组件进行设置背景色。
只需要将实例对象名window变更成组件的实例对象名即可。

import tkinter
window = tkinter.Tk()
window.title('标题')
window.geometry('200x300')
window.configure(background='BlUe')

[5]. 删除窗口

使用

import tkinter
window = tkinter.Tk()
window.title('标题')
window.geometry('200x300')
window.configure(background='BlUe')
window.destroy()

四、按钮

步骤[2]和步骤[3]放置按钮的方法对其他组件是通用的。

[1]. 创建

和窗口不同,其他组件创建时不会直接将组件放置到窗口中。

button = tkinter.Button(window,text='退出',command=lambda:window.destroy(),width=3,height=2)

[2]. 放置按钮(绝对位置)

button.place(x=40,y=90,anchor='nw')

[3]. 放置按钮(相对位置)

button.place(relx=1,rely=1,anchor='se')#相对位置,放置按钮

[4]. 代码

如果要将按钮放置在窗口的右下角,锚点可以设置为se,然后再将这个锚点的坐标设置成窗口的右下角即可。

横轴和纵轴坐标是必须给定的,而锚点参数anchor可以省略不填,但对于特殊的应用场景就得使用到anchor参数来设置锚点了。

import tkinter
window = tkinter.Tk()
window.title('标题')
window.geometry('200x300')
button = tkinter.Button(window,text='退出',command=lambda:window.destroy(),width=5,height=2)
##button.place(x=40,y=90,anchor='nw') #绝对位置,放置按钮
button.place(relx=1,rely=1,anchor='se')#相对位置,放置按钮

五、单行文本

[1]. 创建

如果传入的颜色或者是文本内容是需要输入获取时,可以将等号后面的内容替换成对应的字符串变量

text = tkinter.Label(window,bd=4,fg='red',bg='white',text='内容111111111111111')

[2]. 代码

import tkinter
window = tkinter.Tk()
window.title('标题')
window.geometry('200x200')
text = tkinter.Label(window,bd=4,fg='red',bg='white',text='内容111111111111111')
##text.place(x=20,y=50) #绝对位置,放置文本
text.place(relx=0.2,rely=0.2) #相对位置,放置文本

推荐阅读更多精彩内容