Python Tkinter教程(一)——tkinter编程基本步骤、窗口基本属性及Toplevel控件的使用

article/2025/9/24 17:47:29

 >>>【上节回顾:Python Tkinter 模块简要介绍】<<<

       Python Tkinter教程(一)

         这篇博客将详细地介绍如何使用tkinter模块进行简单的GUI编程(包括基本步骤、窗口基本属性),同时还会解释如何使用Toplevel控件。


一、Toplevel控件

tkinter模块中的控件有两大类,一类是基本控件,包含15个基本控件,另一类是Toplevel控件,包含两个容器控件

Toplevel控件描述关联
Tk创建主窗口并弹出主窗口对话框,必须有一个也只能有一个

主窗口关闭,则主窗口和所有子窗口都会关闭;

子窗口关闭,则仅该子窗口关闭,不影响主窗口和其他子窗口。

Toplevel创建子窗口并弹出新的对话框,可有可无

二、tkinter简单的GUI编程

1、基本步骤

用Python的Tkinter模块创建一个基本的GUI程序的步骤包括:

  1. 导入tkinter模块【必要步骤】
  2. 创建主窗口【必要步骤】
  3. 创建控件
  4. 指定这个控件的master,即这个控件属于哪一个
  5. 主窗口进入消息事件循环【必要步骤】

简单示例

【源代码】

from tkinter import *#导入tkinter模块【必要步骤】root = Tk()#创建主窗口【必要步骤】
#将该窗口赋值给root变量,方便后续使用root.mainloop()#主窗口进入消息事件循环【必要步骤】

【运行效果】

【代码解释】

        在tkinter模块中,我们用Tk()函数(T要大写)去创建一个主窗口,用mainloop()方法使主窗口进入消息事件循环,这很重要,如果没有使主窗口进入消息事件循环,那么主窗口就只会在屏幕上闪一下就消失了,或者闪都没有闪一下,根本没有出现。

        mainloop()方法的位置一定是放在最后,你可以把它理解成一个巨大的循环,使主窗口显示这个程序一直执行(所以主窗口一直显示在屏幕上),类似于循环。

        实际上Tk是一个tkinter的控件,但它不属于基本控件,而是属于Toplevel控件中的一种容器控件,tkinter模块的Toplevel控件中有两种容器控件,一个是产生主窗口的Tk容器控件,另一种是产生子窗口的Toplevel控件(名字雷同,但不是同一个东西)

【控件详细分类见:Python Tkinter 模块简要介绍_小康2021的博客-CSDN博客】

2、窗口基本属性

窗口的属性有很多,大部分适用于两种窗口控件(见【一、Toplevel控件】)下面简单地列个表

窗口属性描述适用于
title()设置窗口标题主窗口Tk、子窗口Toplevel
geometry()设置窗口初始大小和位置主窗口Tk、子窗口Toplevel
resizable()设置窗口的宽和高是否可以改变主窗口Tk、子窗口Toplevel
overrideredirect()设置是否去除窗口边框主窗口Tk、子窗口Toplevel
iconbitmap()设置窗口图标主窗口Tk、子窗口Toplevel
minsize()设置窗口最小缩放的宽和高主窗口Tk、子窗口Toplevel
maxsize()设置窗口最大缩放的宽和高主窗口Tk、子窗口Toplevel
state()设置窗口启动时的状态主窗口Tk、子窗口Toplevel
mainloop()窗口进入消息事件循环主窗口Tk

wm_attributes()

设置WM属性(也可以写为attributes()主窗口Tk、子窗口Toplevel
winfo_x()返回窗口左侧与屏幕左侧之间的距离主窗口Tk、子窗口Toplevel
winfo_y()返回窗口上侧与屏幕上侧之间的距离主窗口Tk、子窗口Toplevel
transient()设置为主窗口的临时窗口子窗口Toplevel
quit()退出主窗口主窗口Tk
destroy()摧毁(退出)控件所有控件

现在开始详细地解释:

窗口属性参数及用法
title(string)string是字符串,窗口的名字,默认为'tk'
geometry('WxH+dx+dy')W和H是窗口的初始宽和高,‘x’代表乘号(不可替换为‘*’)dx和dy代表窗口弹出时窗口左侧和上侧与屏幕左侧和上侧之间的距离(单位:像素)
resizable(bool,bool)两个布尔值分别代表窗口的长和宽是否可改变(可以用0和1代替布尔值)
overrideredirect(bool)布尔值代表是否去除窗口边框(可以用0和1代替布尔值)
iconbitmap('path')path代表图标文件的路径
minsize(width,height)参数分别代表窗口最小缩放的宽和高
maxsize(width,height)参数分别代表窗口最大缩放的宽和高
state(arg)

arg是一个字符串,可以是

'normal'(正常)

'withdrawn'(启动时窗口隐藏)

'iconic'(启动时窗口最小化)

'zoomed'(启动时窗口最大化)

mainloop(integer)integer是整数,为非正数时使主窗口进入消息事件循环,默认为非正数

wm_attributes(args)

或 attributes(args)

wm_attributes("-alpha",double)设置窗口透明度为double(0完全透明~1不透明)

wm_attributes("-toolwindow",bool)设置窗口是否为工具窗口(无最大最小化按钮)

wm_attributes("-topmost",bool)设置窗口是否置顶

wm_attributes("-fullscreen",bool)设置窗口是否全屏

wm_attributes("-disabled",bool)设置窗口是否为不可用状态(所有控件不可用)

wm_attributes("-transparentcolor",color)指定顶层窗口的穿透颜色,接收tk_getcolor中定义的颜色

winfo_x()没有参数,返回窗口左侧与屏幕左侧之间的距离(单位:像素)
winfo_y()没有参数,返回窗口上侧与屏幕上侧之间的距离(单位:像素)
transient(master)master是主窗口,该子窗口会随主窗口最小化而最小化,关闭而关闭,总在最前面
quit()没有参数,退出主窗口,等同于按下退出按钮,所有子窗口也退出
destroy()

没有参数,摧毁主窗口,主窗口消失,且所有子窗口也消失

摧毁子窗口,则只有该子窗口消失,不影响主窗口和其他子窗口

图例说明

【设置为工具窗口】

没有最大化和最小化按钮

 【窗口大小不可改变】

最大化窗口变成灰色不可点的状态

 【去除窗口边框】

窗口顶部消失

【默认窗口图标】 

窗口默认的图标是一片羽毛

简单示例

【源代码】

from tkinter import *#导入tkinter模块root = Tk()#创建主窗口root.title('主窗口')#设置标题
root.geometry('960x480+150+100')#设置窗口大小及位置
root.wm_attributes('-alpha',0.7)#设置透明度为0.7
root.resizable(0,0)#窗口大小不可更改toplevel = Toplevel(root)#创建子窗口
toplevel.title('子窗口')#设置标题root.mainloop()#主窗口进入消息事件循环

【运行效果】


>>>【下节内容:Label控件、Frame控件、Button控件的完整详细用法<<<


http://chatgpt.dhexx.cn/article/SOdUpyIN.shtml

相关文章

Tkinter教程

文章目录 Tkinter教程&#xff08;非常详细&#xff09;教程特点阅读条件 GUI是什么GUI发展史GUI应用领域GUI的优势GUI开发工具 Tkinter是什么第一个Tkinter程序1) 主窗口设置2) 添加文本3) 添加按钮4) 独立运行tkinter程序 Tkinter常用控件和属性控件类型控件基本属性 Tkinter…

超全!Tkinter 使用教程!4000字!

人生苦短&#xff0c;快学Python&#xff01; 本期案例是带着大家制作一个属于自己的GUI图形化界面—>用于设计签名的哦(效果如下图)&#xff0c;是不是感觉很好玩&#xff0c;是不是很想学习呢&#xff1f;限于篇幅&#xff0c;今天我们首先详细讲述一下Tkinter的使用方法。…

Openface (三) EYE GAZE 数据集

三维视线估计 1、Eyediap 数据集 &#xff1a;利用深度摄像头标注 RGB 视频中的眼睛中心点位置和乒乓球位置。把这两个位置映射到深度摄像头记录的三维点云中&#xff0c;从而得到对应的三维位置坐标。这两个三维位置坐标相减后即得到视线方向。 https://www.idiap.ch/en/data…

OpenFaceswap 入门教程(1):软件安装篇

众多换脸软件中&#xff0c;DeepFaceLab其实是安装和使用最方便&#xff0c;更新最快的&#xff0c;但是由于其没有可是化界面&#xff0c;对于很新手来说&#xff0c;可能入门还是有点难度。那么今天就来介绍一款操作极其直观和简单的换脸软件OpenFaceSwap。这款软件的安装和使…

「图像处理」使用Python+Openface实现人脸识别与关键点(landmarks)检测

1、如何在Python上安装OpenFace 下载安装 1、首先需要下载OpenFace源码&#xff1a; &#xff08;Anaconda、Git等自行提前安装&#xff09; git clone https://github.com/cmusatyalab/openface.git 2、接着进入openface路径 cd openface 3、执行&#xff1a; pip ins…

openface的导出数据说明

openface的导出数据说明&#xff0c;因为自己使用的时候一个一个翻译起来比较麻烦&#xff0c;就自己弄了一个。 原文GitHub地址&#xff1a;https://github.com/TadasBaltrusaitis/OpenFace/wiki/Command-line-arguments ZD到最后的列&#xff1a;是面部动作编码系统 &#…

【TensorFlow】人脸识别OpenFace、Face-recognition、Insightface和FaceNet源码运行

比较人脸识别OpenFace、Face-recognition、Insightface&#xff1a; FaceNet源码运行 https://github.com/davidsandberg/facenet 1、使用Anaconda安装TensorFlow&#xff1b; 2、更新scipy库&#xff1b; 3、添加os.environ["KMP_DUPLICATE_LIB_OK"]"TRUE&…

windows下OpenFace安装及测试

想使用openface来实现以下视线估计的内容&#xff0c;但是搜了好多都没有具体的使用方案&#xff0c;于是经历了半周&#xff0c;仔细阅读官方文档和参考了一些大佬的经验&#xff0c;终于运行成功了&#xff0c;在此记录一下&#xff0c;嘻嘻 安装 openceface安装官方文档&…

Ubuntu 14.04下openface的环境搭建

如需转载请标明出处&#xff1a;http://blog.csdn.net/itas109 QQ技术交流群&#xff1a;129518033 一、什么是openface&#xff1f; openface是一个基于深度神经网络的开源人脸识别系统。该系统基于谷歌的文章FaceNet: A Unified Embedding for Face Recognition and Clust…

Windows 11 下 OpenFace 2.2.0 的安装

写在前面 最近需要做关于面部的东西&#xff0c;所以需要使用到OpenFace这个工具&#xff0c;本文仅用来记录本人安装过程以供后续复现&#xff0c;如果可以帮助到读者也是非常荣幸。 安装过程 不编译直接使用 这种方法可以直接从官方下载下来编译好的exe以及gui进行使用&a…

Openface人脸识别的原理与过程

Openface人脸识别的原理与过程&#xff1a; https://zhuanlan.zhihu.com/p/24567586 原理可参考如下论文&#xff1a; 《OpenFace: A general-purpose face recognition library with mobile applications》 第一步&#xff1a;找出所有的面孔 我们流水线的第一步是人脸检测。…

openface在pycharm上的安装

1、下载openface相关文件 链接&#xff1a;下载openface:GitHub - cmusatyalab/openface: Face recognition with deep neural networks. 下载后得到一个openface-master的文件夹 2、输入cmd&#xff0c;进入命令提示符&#xff0c;找到自己保存的openface-master文件夹路径。 …

OpenFace使用OpenFace进行人脸识别

1.OpenFace简介 http://cmusatyalab.github.io/openface/ 安装就按照官方教程来就好了 装完各种依赖之后运行一下命令 https://github.com/cmusatyalab/openface.git --recursive cd openface sudo python setup.py install sh modles/get-models.sh 2.素材准备 准备两…

【OpenFace】

OpenFace&#xff1a; http://cmusatyalab.github.io/openface/ 一、什么是Openface&#xff1f; Openface是一个基于深度神经网络的开源人脸识别系统。该系统基于谷歌的文章FaceNet: A Unified Embedding for Face Recognition and Clustering。Openface是卡内基梅隆大学的 B…

OpenFace

OpenFace是一个包含了landmark&#xff0c;head pose&#xff0c;Actionunions&#xff0c;eye gaze等功能&#xff0c;并包含训练和检测所有源码的开源人脸框架&#xff0c;论文为&#xff0c;OpenFace: an open source facial behavior analysis toolkit OpenFace所用到的库包…

win10下openface快速安装与使用

win10下openface快速安装与使用 情况说明环境下载openface下载模型openface的简单使用 情况说明 我发现openface的安装方法五花八门&#xff0c;大多都比较复杂&#xff0c;而openface分很多版本&#xff0c;很多安装教程混在一起&#xff0c;导致我自己安装时下载下混了。 本…

Windows系统下的Openface安装及使用--亲测有效

一、配置openface所需环境 openface主要依赖于opencv和dlib等工具包&#xff0c;工具包安装可winr进入用户终端下载安装&#xff08;需要先下载python&#xff09;&#xff0c;或者下载ananconda&#xff0c;创建anaconda虚拟环境安装&#xff1a; pip install opencv-python…

OpenFace简介

推荐 如下博文 https://blog.csdn.net/qq_14845119/article/details/53994607 OpenFace是一个包含了landmark&#xff0c;head pose&#xff0c;Actionunions&#xff0c;eye gaze等功能&#xff0c;并包含训练和检测所有源码的开源人脸框架&#xff0c;论文为&#xff0c;Ope…

Openface的安装和使用

openface的安装与使用 环境&#xff1a;我的电脑是笔记本电脑&#xff0c;win10系统&#xff0c;用的是pycharm和annaconda。 一、首先下载openface安装包&#xff0c;并且安装 1.下载地址&#xff1a;https://codeload.github.com/cmusatyalab/openface/zip/master 2.下载后…

OpenFace学习(1):安装配置及人脸比对

前言 前几天在网上看到了openface&#xff08;链接&#xff09;&#xff0c;觉得挺有趣就下载配置了一下&#xff0c;稍微修改了一下跑了个demo&#xff0c;效果还是很不错的。这里分享下安装配置的过程以及demo。 简介 openface是一个基于深度神经网络的开源人脸识别系统&a…