Tkinter系列教程01—引言和安装Tk—Python GUI编程
Tkinter教程系列01——引言和安装Tk
首发于我的个人博客 https://chens.life/tkinter-tutorial-chapter-01-introduction-and-install-tk.html
引言
这个教程针对于 Tkinter 的初学者而攥写,但也应该具有 Python 的基础知识。
此教程是我学习 Tk 的记录和总结,希望能够帮助到他人。
此教程针对 Tk 8.5或者更高版本,如果不是,请安装最新版。本教程使用 Python 进行演示,如果使用其他语言,Tk函数库的大部分都是相同的,详细区别请查找对应的文档。
本教程覆盖 95% 的在程序中会用到的基本内容,剩下的请自请查找参考文档。
什么是Tkinter
Tkinter是当前主流的,也是 Python 的标准图形化用户界面工具包。我们在初学 Python 的时候肯定都用过 IDLE,而这个小型的IDE就是用 Tkinter 开发出来的,足以见到它的方便和易用性(图1-1)。使用 Tk 可以编写实用的图形界面小程序,设计现代的图形界面。

安装 Tk
为 Windows 安装 Tk
自从 Python 3.1 之后,Tkinter 就被包括在 Python标准库中。你必须确保自己的 Python 版本支持 Tk 8.5 或者更高版本。本教程使用 Python 3.x。请在 Python 官网下载页面下载最新版 Python 。
验证是否安装正确
安装之后,需要验证 tkinter 版本是否正确。打开 cmd,输入 python 进入交互界面,并输入下面两行命令:
import tkinter
tkinter._test()
你将会看到一个小窗口,上面有 Tkinter 的版本信息。注意!你的 Tk 版本必须大于 8.5 或者更高(图1-2)。

或者,你可以输入以下命令直接的得到 Tcl/Tk 的版本(图1-3):
tkinter.Tcl().eval('info patchlevel')

为 GNU/Linux 安装 Tk
由于Linux不会自动的安装 Tk 和 ttk,所以需要手动的安装。安装有许多方式,这里仅提供一种最简单的方式。
使用 Linux 的包管理器进行安装
例如,如果你正在使用 Ubuntu 或者 Debian 系的 Linux 发行版,那么输入以下命令以安装 python3-tk:
sudo apt-get install python3-tk
同样的道理也适用于 ReadHat 系。
验证是否安装正确
同 Windows 的验证一样,在 Python 的解释命令行中输入:
import tkinter
tkinter._test()
或者输入以下命令直接的得到版本信息:
tkinter.Tcl().eval('info patchlevel')
同样的,注意你的 tk 版本必须为 8.5 或者更高版本!
第一个 Tk 程序
为了确保所有的环境都已经设置正确,按照惯例,我们来使用 Tk 编写一个“Hello World!”程序。
使用你最拿手的编辑器敲下下面的代码即可,我们将在后续逐步讲解它们的作用。
from tkinter import *
from tkinter import ttk
root = Tk()
ttk.Button(root, text="Hello World!").grid()
root.mainloop()
将文件保存为“hello.py”,在命令提示符或者 Bash 中输入:
python hello.py
如果找不到文件,请查看当前是否在文件所在的目录之中,或者输入完整路径名。
如果执行正确,你将会看到如图所示的窗口(图1-4)。

Tkinter系列教程01—引言和安装Tk—Python GUI编程的更多相关文章
- Tkinter教程系列01——引言和安装Tk
Tkinter教程系列01--引言和安装Tk 首发于我的个人博客 https://chens.life/tkinter-tutorial-chapter-01-introduction-and-ins ...
- Node.js 教程 01 - 简介、安装及配置
系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...
- springCloud系列教程01:Eureka 注册中心集群搭建
springCloud系列教程包含如下内容: springCloud系列教程01:Eureka 注册中心集群搭建 springCloud系列教程02:ConfigServer 配置中心server搭建 ...
- Python GUI编程(Tkinter) windows界面开发
Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py 1 #!C:\Python27\python.e ...
- Python gui编程pyQt5安装步骤t
Python gui编程pyQt5安装步骤 pip install PyQt5 Pip3 install PyQt5 https://riverbankco ...
- Python gui编程pyQt5安装步骤
Python gui编程pyQt5安装步骤 =============================== -m PyQt5.uic.pyuic $FileName$ -o $FileNameWit ...
- 史上最详细的Android Studio系列教程一--下载和安装
链接地址:http://segmentfault.com/a/1190000002401964#articleHeader4 原文链接:http://stormzhang.com/devtools/2 ...
- Python GUI编程--Tkinter
今天看到了GUI编程,书上推荐用wxPython,去官网上看了看,发现Windows的最高支持到2.7,我用的是3.4版本,咋办,用自带的库--Tkinter呗,它是Python的默认GUI库,几乎是 ...
- Python -- Gui编程 -- Tkinter的使用 -- 对话框消息框
1.消息框 tkMessageBox.py import tkinter from tkinter import messagebox def cmd(): global n global butto ...
随机推荐
- taro ENV & NODE_ENV & process.env
taro ENV & NODE_ENV & process.env https://github.com/NervJS/taro-ui/blob/dev/src/common/util ...
- CORS & OPTIONS & preflight request
CORS & OPTIONS preflight request CORS 原理 CORS跨域的原理实际上是浏览器与服务器通过一些HTTP协议头来做一些约定和限制 OPTIONS 应用场景 h ...
- js 动态构建style
使用创建style的方式 btn.addEventListener("click", async () => { const ns = document.createElem ...
- js 使用socket-io发送文件
更多 前端 import { Component, OnInit, ViewChild, ElementRef } from '@angular/core'; import { MediaDevice ...
- ts 索引签名 无视多余的属性类型
interface SquareConfig { color?: string; width?: number; [propName: string]: any; } function asd(opt ...
- django学习-25.admin管理后台里:把表名称和表字段名称的展示值都由英文显示改为由中文显示
目录结构 1.前言 2.完整的操作步骤 2.1.第一步:修改模型类Article 2.2.第二步:重启服务 2.3.第三步:退出登录并再次成功登陆admin管理后台 2.4.第四步:查看最新的表名称展 ...
- C++算法代码——[TYVJ]单数?双数?
题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1178 题目描述 Bessie那惨无人道的二年级老师搞了一个有 N (1 < ...
- Django Admin 后台Admin继承UserAdmin增加用户密码不显示明文和用户登录不了的解决方法
Django后台Admin继承UserAdmin增加用户不显示明文方法 1.在 models.py 中用户表 # 导包规范-1.Python标准模块 from django.db import mod ...
- Nginx(八): 观进程锁的实现
前面的nginx系列讲解了nginx很多通用概念,流程,以及核心的http模块的一些实现.应该说大体上对nginx已经不再陌生和神秘. 今天我们不看全局,只看一个非常非常小的细节:nginx是多进程并 ...
- vscode的代码片段
一.快速创建一个vue单文件组件 "Create a new Component": { "prefix": "vue", "bo ...