Tkinter教程(每天半小时,3天彻底掌握Tkinter)day1

简介: Tkinter教程(每天半小时,3天彻底掌握Tkinter)day1

教程环境

运行系统:win10


开发工具:PyCharm Community Edition 2021.3.1


Tkinter概述

Tkinter(即 tk interface) 是 Python 标准 GUI 库,简称 “Tk”;从本质上来说,它是对 TCL/TK 工具包的一种 Python 接口封装。Tkinter 是 Python 自带的标准库,因此无须另行安装,它支持跨平台运行,不仅可以在 Windows 平台上运行,还支持在 Linux 和 Mac 平台上运行。


Tkinter 编写的程序,也称为 GUI 程序,GUI (Graphical User Interface)指的是“图形用户界面”,它是计算机图形学(CG)的一门分支,主要研究如何在计算机中表示图形,以及利用计算机进行图形的计算、处理和显示等相关工作。


GUI是什么

图形用户界面(Graphical User Interface,简称 GUI),是计算机图形学技术的一种,它一般由窗口、下拉菜单或者对话框等图形化的控件组成。用户通过点击菜单栏、按钮或者弹出对话框的形式来实现与机器的交互,GUI 的存在拉近了人与计算机的的距离,让人机交互的过程变得简单舒适、有温度。


Python GUI 工具:Tkinter、wxPython、PyQt、PyGTK、Pywin32 等;

这里我们主要针对Tkinter进行讲解。


Tkinter是什么

Tkinter(即 tk interface,简称“Tk”)本质上是对 Tcl/Tk 软件包的 Python 接口封装,它是 Python 官方推荐的 GUI 工具包,属于 Python 自带的标准库模块,当您安装好 Python 后,就可以直接使用它,而无须另行安装。


作为一款 Python  GUI 工具,Tkinter 拥有良好的跨平台性,支持 Windows、Linux、Mac 平台,它传承了 Python 语法简洁、代码易读的基本特点。


与其他编程语言的 GUI 工具包相比,Tkinter 编码效率高,能够实现快速开发的目的,非常适合初学者学习。Tkinter 使用纯 Python 语言开发,与 C/C++ 开发的 Qt 框架相比,Tkinter 有自身的局限性,比如性能、功能丰富程度等都不及 Qt,因此它只适合开发一些简单的程序,比如计算器的界面,或者一个简易的聊天窗口等。


Tkinter的弊端

通常情况下不会使用 Tkinter 来开发较为复杂的桌面应用程序,这是由 Python 语言自身特点决定的,作为一种解释型语言和脚本语言,Python 并不具备开发复杂桌面应用的优势。


但“麻雀虽小,五脏俱全”,Tkinter 作为 Python  GUI 开发工具之一,它具有 GUI 软件包的必备的常用功能。比如,它提供了十多种不同类型的窗口控件、窗口布局管理器、事件处理机制等,加之其开发效率高、代码简洁易读, Tkinter 自问世以来,备受大家青睐。当您想要制作一个小工具的界面或者比较简单的桌面应用程序时,那么Tkinter 将是一个不错的选择。


python -m tkinter

image.png


第一个Tkinter程序

我们先简单看一下示例,后面在进行具体的分析与讲解。


# -*- coding:utf-8 -*-
import tkinter as tk
# 调用Tk()创建主窗口
root_window =tk.Tk()
# 给主窗口起一个名字,也就是窗口的名字
root_window.title("这是我们的第一个tk页面,除了title啥都没设置。")
#开启主循环,让窗口处于显示状态
root_window.mainloop()


image.png

插入ico

在这个demo里面可以看到我不仅设置了iconbitmap而且还设置了对应的background颜色,并且添加了一个text文本,通常会使用tk.Lable设置,在参数中能看到,bg是北京颜色,fg是文字颜色,font的参数里面是字体设置。依次是字体、字号、样式,bold italic加粗的斜体。

# -*- coding:utf-8 -*-
import tkinter as tk
# 调用Tk()创建主窗口
root_window = tk.Tk()
# 给主窗口起一个名字,也就是窗口的名字
root_window.title("CSDN的ico")
# 设置窗口大小:宽x高,注,此处不能为 "*",必须使用 "x"
root_window.geometry('450x300')
# 更改左上角窗口的的icon图标,加载CSDN复制下来的ico
root_window.iconbitmap('csdn.ico')
# 设置主窗口的背景颜色,颜色值可以是英文单词,或者颜色值的16进制数,除此之外还可以使用Tk内置的颜色常量
root_window["background"] = "#DCE2F1"  # 海天蓝,一种比较护眼的颜色
# 添加文本内,设置字体的前景色和背景色,和字体类型、大小
text = tk.Label(root_window, text="2022创造更多的价值", bg="yellow", fg="red", font=('Times', 20, 'bold italic'))
# 将文本内容放置在主窗口内
text.pack()
# 添加按钮,以及按钮的文本,并通过command 参数设置关闭窗口的功能
button = tk.Button(root_window, text="关闭", command=root_window.quit)
# 将按钮放置在主窗口内
button.pack(side="bottom")
# 开启主循环,让窗口处于显示状态
root_window.mainloop()

image.png


关闭python窗体

这里需要知道command=root_window.quit是关闭窗体,root_window是变量名,根据你自己定义的窗体名称替换即可。


# 添加按钮,以及按钮的文本,并通过command 参数设置关闭窗口的功能
button = tk.Button(root_window, text="关闭", command=root_window.quit)
# 将按钮放置在主窗口内
button.pack(side="bottom")

python窗体居中设置

screenwidth = root_window.winfo_screenwidth()
screenheight = root_window.winfo_screenheight()
dialog_width = 800
dialog_height = 600
# 前两个参数是窗口的大小,后面两个参数是窗口的位置
root_window.geometry(
    "%dx%d+%d+%d" % (dialog_width, dialog_height, (screenwidth - dialog_width) / 2, (screenheight - dialog_height) / 2))

先获取平路的宽度以及高度,在根据咱们自定义的窗体宽高来计算居中。


image.png


这里采用800*600是为了后面的操作。因为800*600几乎所有的电脑都不会出现页面溢出,那么咱们根据它来创建一个常用的功能页面,需要啥留下什么,其余的删除,就是我们需要的页面。我们不做复杂的,够用即可。


护眼色_颜色名称_16进制色值_RGB色值

提供了10种比较护眼的颜色,以后在背景颜色设置的时候可以使用到。


1、绿豆沙 #C7EDCC RGB(199, 237, 204)


2、银河白 #FFFFFF RGB(255, 255, 255)


3、杏仁黄 #FAF9DE RGB(250, 249, 222)


4、秋叶褐 #FFF2E2 RGB(255, 242, 226)


5、胭脂红 #FDE6E0 RGB(253, 230, 224)


6、海天蓝 #DCE2F1 RGB(220, 226, 241)


7、葛巾紫 #E9EBFE RGB(233, 235, 254)


8、极光灰 #EAEAEF RGB(234, 234, 239)


9、青草绿 #E3EDCD RGB(227, 237, 205)


10、电脑管家 #CCE8CF RGB(204, 232, 207)

image.png



主窗体设置

# 导入tk
from tkinter import *
# 创建一个主窗口对象
window = Tk()
# 调用mainloop()显示主窗口
window.mainloop()

其实主窗体就是个空的,啥也没有的窗体。我们需要依据窗体的属性以及属性值进行窗体样式的设置。

image.png



窗口常用方法

下表列出了窗口的常用方法,其中 window 代表主窗口对象:

image.png

python获取电脑屏幕的大小

window.winfo_screenwidth()  # 宽度
window.winfo_screenheight()  # 高度
print("电脑的分辨率是%dx%d" % (window.winfo_screenwidth(), window.winfo_screenheight()))

image.png


python获取窗口的大小,必须先刷新一下屏幕

window.update()
print("窗口的分辨率是%dx%d" % (window.winfo_width(), window.winfo_height()))

由于我没有设置窗口的分辨率,这里读取的200X200代表默认的窗体大小。

image.png


python设置窗体不能被拉伸

window.resizable(0, 0)

image.png


python背景颜色设置

window.config(background="#DCE2F1")

image.png

python设置窗口处于顶层

window.attributes('-topmost',True)

这样就可以看到置于最顶层了。


image.png


python设置窗体透明度

window.attributes('-alpha', 1)

在这里可以看到0.5就是50%的透明度。


image.png


第一篇文章就到这里,希望能为大家创造一定的价值。

相关文章
|
27天前
|
数据采集 开发框架 .NET
告别爬取困境:用Playwright完美抓取复杂动态网页
Playwright:动态网页爬虫新利器。跨浏览器支持、智能等待、网络拦截,轻松应对异步加载与反爬机制。实战案例+高效技巧,解锁复杂页面数据抓取。
212 0
|
Shell 开发工具 开发者
mac出现无法打开“*“,因为无法验证开发者 问题解决
mac出现无法打开“*“,因为无法验证开发者 问题解决
6303 0
mac出现无法打开“*“,因为无法验证开发者 问题解决
|
5月前
|
人工智能 自然语言处理 搜索推荐
Qwen 家族再上新!
Qwen3 Embedding 是基于 Qwen3 基础模型训练的文本嵌入模型系列,可将离散符号转化为连续向量,捕捉语义关系。结合 Qwen3 Reranker 模型,通过“初筛+精排”流程提升搜索与推荐系统的相关性排序能力。该系列模型支持多语言、提供灵活架构(0.6B-8B 参数规模),并在 MTEB 多语言榜单中排名第一。用户可通过 Hugging Face、ModelScope 和 GitHub 快速体验模型服务。
608 3
|
SQL Shell 数据库连接
死磕xxl-job(二)
死磕xxl-job(二)
1014 0
|
人工智能 Kubernetes Cloud Native
AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效
AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效
248 0
|
索引 Windows
技术笔记:RTF文件格式
技术笔记:RTF文件格式
847 0
|
存储
【工具】Raycast 提效工具Mac
以前看到同事们锁屏的时候,不知按了什么键,直接调出这个框,然后输入lock屏幕就锁了。 我习惯的按Mac开机键不大一样。个人觉得还是蛮炫酷的~
486 0
|
Serverless 计算机视觉
实战| 轻松实现仰卧起坐检测与计数,手把手教学【附完整源码与详细讲解】
实战| 轻松实现仰卧起坐检测与计数,手把手教学【附完整源码与详细讲解】
|
存储 编解码 安全
探索FFmpeg复用:深入理解媒体数据的组织与封装(二)
探索FFmpeg复用:深入理解媒体数据的组织与封装
314 0