python的tkinter(图形用户界面)

2023-05-16

目录标题

  • 什么是图形用户界面(GUI)
  • Tinter
  • 函数和参数说明(常用)
  • Lable(标签):
  • 效果
  • Button(按钮)
    • 效果
  • Entry(文本框)
    • 效果
  • Text (多行文本框)
  • Canvas(画布)
    • 效果
  • Message(消息弹窗)
  • 效果

什么是图形用户界面(GUI)

图形化用户界面,就是可以拉近人和计算机的距离,让人在使用软件以及应用程序的时候更加方便,让人可以更容易的使用程序员开发的程序
我们生活中比较常见的GUI有:QQ的登录程序,window的系统操作桌面

Tinter

它是 Python 官方推荐的 GUI 工具包,他是属于python标准库中自带的模块,所以不用使用pip下载,直接引用就可以

函数和参数说明(常用)

请添加图片描述

Lable(标签):

显示不可编辑文本

# 引入tkinter模块
import tkinter as tk
# 实例化
window  = tk.Tk()
# 设置图形化窗口的大小
window.geometry('500x300')
# 窗口名称
window.title("图形化界面")
# 设置标签
l1 = tk.Label(window,text='this is tkinter !',bg='pink',font=('Arial', 12),width=15,height=5)
# 放置标签并且显示出来
l1.pack()
# 让窗口进行循环显示
window.mainloop()

我们需要注意的地方就是设置图形化大小的地方’x‘是小写x不是乘号

效果

在这里插入图片描述

Button(按钮)

点击按钮执行某种操作

# 引入tkinter模块
import tkinter as tk
# 实例化
window  = tk.Tk()
# 设置图形化窗口的大小
window.geometry('500x300')
# 窗口名称
window.title("图形化界面")
# 设置点击要执行的函数
def hit():
    print('点击按钮')
B1 = tk.Button(window,text="按钮",command=hit)
# 放置标签并且显示出来
B1.pack()
# 让窗口进行循环显示
window.mainloop()

效果

在这里插入图片描述

Entry(文本框)

单行可输入文本框

# 引入tkinter模块
import tkinter as tk
# 实例化
window  = tk.Tk()
# 设置图形化窗口的大小
window.geometry('500x300')
# 窗口名称
window.title("图形化界面")
# 设置一个变量
v1 = tk.StringVar()
# 设置单行可输入的文本框
e1 = tk.Entry(window,textvariable=v1)
# 为了更直观的查看效果,我们在这里加一个按钮函数
def hit():
    print(e1.get())
b1 = tk.Button(window,text='输出文本',command=hit).pack()
# 放置标签并且显示出来
e1.pack()
# 让窗口进行循环显示
window.mainloop()

效果

在这里插入图片描述

Text (多行文本框)

用于输入和显示文本的部件
这个方法他有两种插入方式(1、在光标处插入 2、在结尾插入)

# 引入tkinter模块
import tkinter as tk
# 实例化
window  = tk.Tk()
# 设置图形化窗口的大小
window.geometry('500x300')
# 窗口名称
window.title("图形化界面")
# 设置一个变量
v1 = tk.StringVar()
# 设置单行可输入的文本框
e1 = tk.Entry(window,textvariable=v1)
# 为了更直观的查看效果,我们在这里加一个按钮函数
# 设置在光标处插入文本
def hit():
    t1.insert('insert',v1.get())
def hit1():
    t1.insert('end',v1.get())
# 设置按钮
b1 = tk.Button(window,text='光标处插入',command=hit)
b2 = tk.Button(window,text='尾部插入',command=hit1)
# 设置text部件
t1 = tk.Text(window,height=5)
# 放置标签并且显示出来
e1.pack()
b1.pack()
b2.pack()
t1.pack()
# 让窗口进行循环显示
window.mainloop()

在这里插入图片描述

Canvas(画布)

画布故名思意就是一个类似于画布的一个部件我们可以在上面放置土图片,也可以在上面画一些类似于直线,半圆,⚪,以及矩形。还可以配置函数通过按钮部件进行对图像的移动

# 引入tkinter模块
import tkinter as tk
# 实例化
window  = tk.Tk()
# 设置图形化窗口的大小
window.geometry('500x300')
# 窗口名称
window.title("图形化界面")
# 设置画布
canvas = tk.Canvas(window,bg='pink',width=500,height=300)
# 放置图片
image_file = tk.PhotoImage(file='python.gif')
image = canvas.create_image(250, 0, anchor='n',image=image_file)
# 画⚪
oval = canvas.create_oval(10,10,100,100,fill='black')
# 直线
line = canvas.create_line(120,10,100,100)
# 扇形
arc  = canvas.create_arc(150,150,300,200,start=0,extent=180,fill='yellow')
# 矩形
retc = canvas.create_rectangle(200,200,300,300,fill='red')
# 设置移动函数
def move():
    canvas.move(retc,10,10)
# 设置按钮并且放置
b1 = tk.Button(window,text='move',command=move).pack()
# 放置并且显示
canvas.pack()
# 让窗口进行循环显示
window.mainloop()

效果

初始效果图
在这里插入图片描述
移动后
在这里插入图片描述

Message(消息弹窗)

通过弹出窗口的方式对用户进行提醒

import tkinter as tk  # 使用Tkinter前需要先导入
import tkinter.messagebox  # 要使用messagebox先要导入模块
 
# 第1步,实例化object,建立窗口window
window = tk.Tk()
 
# 第2步,给窗口的可视化起名字
window.title('My Window')
 
# 第3步,设定窗口的大小(长 * 宽)
window.geometry('500x300')  # 这里的乘是小x
 
# 第5步,定义触发函数功能
def hit_me():
    tkinter.messagebox.showinfo(title='提示', message='提示')              
    tkinter.messagebox.showwarning(title='警告', message='警告')       
    tkinter.messagebox.askquestion(title='询问', message='询问')
    tkinter.messagebox.askyesno(title='询问', message='询问')  
    tkinter.messagebox.askokcancel(title='询问', message='询问') 
# 第4步,在图形界面上创建一个标签用以显示内容并放置
tk.Button(window, text='点击', bg='pink', font=('Arial', 14), command=hit_me).pack()
 
# 第6步,主窗口循环显示
window.mainloop()

效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

愿君前程似锦,未来可期去💯,感谢您的阅读,如果对您有用希望您留下宝贵的点赞和收藏

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python的tkinter(图形用户界面) 的相关文章

  • 谈谈android的动画

    android动画为app提供更丰富 更绚丽的视觉效果 xff0c 因此app或多或少都会添加动画效果 在此总结一下 xff0c 本人android开发过程中 xff0c 有关动画的内容 一 android动画种类和区别 android动画
  • android好用的第三方库2018使用总结

    需要android开发视频资料可以加我微信 1914532832 验证信息请注明 xff1a android开发 不知不觉2018年已经过了大半 xff0c 来总结一下今年用到的一些好用的框架和第三方库 xff0c 包括App架构 异步通信
  • Linux(debian7)操作基础(四)之CPU频率调整

    在Linux中 xff0c 内核的开发者定义了一套框架模型来完成CPU频率动态调整这一目的 xff0c 它就是CPU Freq系统 如下为CPU的几种模式 xff08 governor参数 xff09 xff1a ondemand xff1
  • ubuntu oh-my-zsh

    简单说明下shell bash zsh sh shell是一个用C语言编写的程序 xff0c 是一种脚本编程语言 xff0c 是一个连接内核和用户的软件 xff0c 是用户使用Linux的桥梁 shell是指一种应用程序 xff0c 这个应
  • 获取携程机票信息(爬虫)

    仅供个人学习使用 xff01 2022 01 01 版 span class token comment 64 author AIslandX span span class token comment 64 date 2022 01 01
  • Ubuntu下~/.bashrc文件的恢复方法

    问题描述 如果不小心在更改环境变量文件 bashrc时出现将文件内容覆盖的情况 xff0c 比如echo hello world gt bashrc没有使用添加模式而是覆盖模式 xff0e NOTE xff1a 非覆盖情况下 xff0c 不
  • Debian11 普通用户启动Wireshark没有权限

    普通用户启动 wireshark 报错 xff0c 没有权限 可以在终端使用 sudo wireshark 启动 解决方法如下 xff1a 1 添加wireshark用户组 sudo groupadd wireshark 2 将dumpca
  • 批量创建txt文本

    最近在进行html学习时 xff0c 用的编辑器是txt文本 xff0c 但每次都要新建文本 xff0c 比较麻烦 xff0c 所以打算创建多个文本 批量创建文件方法 xff1a 1 打开Excel表格 输入以下内容 可以利用excel的特
  • 文本相似度计算工具类

    package com xxxx xclouddesk utils import cn hutool core collection CollUtil import cn hutool extra tokenizer Result impo
  • c++20 ranges库

    ranges库在对元素进行逐一操作或者判断时可以省掉很多循环体 xff0c 使代码的可读性提高 例如 xff0c 要从一个vector中拿出所有的偶数并求平方并逆序排列 xff0c 生成一个新的vector xff0c 以前这样写 xff1
  • Linux : nano: command not found

    nano command not found 这是因为在Linux中没有安装nano而已 我们只需要安装一下就好了 安装命令 yum install nano 遇到选择 一路Y就行了
  • 【Shotcut】用最短路径编辑一个视频

    目录 一 图解最短路径二 新建工程三 导入素材四 编辑视频4 1 图片素材拖入时间线 xff0c 自动添加V1视频轨道4 2 视频素材拖入图片素材后面4 3 时间线添加音频轨道4 4 音频素材拖入音频轨道 xff0c 和视频素材左端对齐4
  • 【Shotcut】画中画_调整大小位置

    目录 一 大小画中画1 1 新建工程1 2 导入素材1 3 将一个视频拖入时间线 xff0c 自动创建V1轨道1 4 Ctrl 43 I 新建V2轨道 xff0c 将另一个视频拖入1 5 将两段视频剪齐1 6 对上面的V2轨道添加Size
  • Docker安装mysql 8 忽略表名大小写,通过命令修改my.cnf配置文件,无需进容器重新初始化数据库

    看了很多博客都是需要先启动容器再进容器内部修改my cnf 重新初始化数据库 xff0c 然而DockerHub直接就对容器启动时设置了my cnf的修改方式 xff0c 具体步骤简单如下 xff1a 官方参考链接 xff1a https
  • 解决 Windows 10 自带虚拟机运行 Ubuntu 18.04 卡顿的问题

    来源 xff1a A guide how to run Ubuntu 18 04 in Enhanced Mode in Hyper V 系统要求 控制端 xff1a Windows 10 xff0c 1803以及之后 受控端 xff1a
  • linux常用命令command not found的解决方案(自己整理)

    1 ifconfig command not found 是因为没有安装此命令包 xff0c 安装方法 xff1a yum install net tools2 sz和rz文件上传命令command not found 执行 xff1a w
  • Window7升级 PowerShell

    一 查看当前PowerShell版本 1 命令行输入powershell 2 命令行输入get host 二 下载新版PowerShell xff08 下载说明 xff1a https docs microsoft com zh cn po
  • MSE(均方误差)函数和RMSE函数

    本文链接 xff1a https blog csdn net qq 36512295 article details 86526799 MSE xff08 均方误差 xff09 函数一般用来检测模型的预测值和真实值之间的偏差 训练集 xff
  • PSNR-峰值信噪比(原理及Python代码实现)

    本文链接 xff1a https blog csdn net leviopku article details 84586446 PSNR的全称为 Peak Signal to Noise Ratio xff0c 直译为中文就是峰值信噪比
  • matlab向量的模

    向量 v 中的元素 v1 v2 v3 vn xff0c 下式给出其幅度 xff1a v 61 v12 43 v22 43 v32 43 43 vn2 MATLAB中需要采按照下述步骤进行向量的模的计算 xff1a 采取的矢量及自身的积 xf

随机推荐

  • 图像阶梯效应

    图像阶梯效应现象产生原因 在利用二阶偏微分方程进行平滑图像过程中 xff0c 有时会出现 阶梯效应 或者是 块效应 即图像处理后某些区域内灰度相同 区域内灰度相同 xff0c 表示该区域任意一点其灰度值的一阶导数为0 这说明随着迭代次数增加
  • 邻接矩阵

    逻辑结构分为两部分 xff1a V和E集合 xff0c 其中 xff0c V是顶点 xff0c E是边 因此 xff0c 用一个一维数组存放图中所有顶点数据 xff1b 用一个二维数组存放顶点间关系 xff08 边或弧 xff09 的数据
  • JavaScript

    1 a 任何数值除以0都会导致错误而终止程序执行 但是在JavaScript中 xff0c 会返回特殊的值 xff0c 因此不会影响程序的执行 比0大的数除以0 xff0c 会得到无穷大 xff0c 所以js用infinity来x显示出来
  • -操作系统

    1进程同步的引入背景 xff1a 在多道程序环境下 xff0c 进程是并发执行的 xff0c 不同进程之间存在这不同的相互制约关系 为了协调进程之间的相互制约关系 xff0c 引入了进程同步的概念 2在有n个进程共享一个互斥段 xff0c
  • -网络基础

    1 物理层 xff1a RJ45 CLOCK IEEE802 3 xff08 中继器 集线器 网关 xff09 数据链路 xff1a PPP FR HDLC VLAN MAC xff08 网桥 xff0c 交换机 xff09 网络层 xff
  • 恒生面试准备

    目录 1 flex布局 2 vue的特性有哪些 xff1f 3 Vue中父子组件的传值的方式有几种 xff1f 它们有什么数据上的限制 4 项目中用了vue组件传值的方式有哪些 5 项目中用到的组件 6 浏览器输入url到渲染网页的过程 7
  • 同程艺龙一面

    目录 1 说说HTML5 2 link标签要放到head之后 xff0c script标签要放到body标签结束之前 xff0c 为什么 3 HTML语义化重要性 4 meta中的viewport干嘛的 5 P标签中的文字如何水平垂直居中
  • 杭州端点一面

    目录 1 vue双向绑定 2 Promise了解过吗 xff1f promise all解释一些 xff0c 为什么可以链式回调 3 let和var的区别 4 深拷贝和浅拷贝区别和实现方式 5 父子组件传值 6 了解webpack吗 xff
  • iOS 中 cell和 label 的自适应高度

    之前我们使 的 cell 一直都是同样的高度 或者某行固定 度 实际开发中经常要让 cell 根据 Model 中文本的长短动态的更改高度 1 获取文本高度 计算一段文本在限定宽高内所占矩形大 iOS7计算文本 度 法 CGRect bou
  • C++获取含有中文的字符串长度

    在Windows下 xff0c 中文字符在C 43 43 中的内存占用为2字节 xff0c 此时采用字符串长度获取函数得到的结果会将一个中文字符识别为两个长度 xff1a include lt stdio h gt include lt s
  • IOS中自定义cell大小的两种方法

    第一种 xff1a 自定义cell xff0c 不用xib的 xff0c 用已经封装好的类Category m类 第一步 xff1a label 的自定义高度 xff0c 用的是 xff08 封装好的方法 xff09 根据 label 中的
  • mysql的2003-Can‘t connect to MySQL server on ‘localhost‘(10061“Unknown error“)错误解决方法

    在我们对mysql的数据库进行连接时出现2003 Can 39 t connect to MySQL server on 39 localhost 39 10061 34 Unknown error 34 的错误 xff0c 截图如下 xf
  • python实现朗读内容

    项目描述 pyttsx3 是 Python 中的文本到语音转换库 与替代库不同 xff0c 它可以脱机工作 xff0c 并且与Python 2和3兼容 pyttsx3 的官网pyttsx3 皮皮 pypi org https pypi or
  • python计算圆的面积

    提示 xff1a 笔记希望对你有帮助 文章目录 前言1 事先准备2 代码书写3 代码运行总结 前言 提示 xff1a 本次我们的代码的是通过pycharm实现的 下面让我们使用python对我们的圆的面积以及周长进行一个简单的计算 1 事先
  • Windows环境下edge浏览器点击下载没有反应

    项目场景 xff1a 系统 xff1a windows 11 家庭中文版 浏览器 xff1a Microsoft Edge版本 104 0 1293 54 正式版本 64 位 问题描述 edge浏览器点击下载没有反应 原因分析 xff1a
  • python怎么查看安装了哪些库

    这里写目录标题 前言方法1方法2 前言 有时候我们在使用python的时候 xff0c 想知道自己安装哪些了第三方库以及第三方库的版本 xff0c 下面来介绍一下方法 方法1 我们可以通过命令提示符输入相关的命令进行查看 xff0c 命令如
  • python 安装dmPython

    文章目录 前言下载达梦数据库安装dmPython模块引用模块解决方法 代码演示 前言 使用python连接我们的连接达梦数据库 下载达梦数据库 达梦数据库的官网链接 达梦数据库的下载链接 安装dmPython模块 找到达梦数据库的安装目录
  • python requests cookie的获取和使用

    文章目录 前言一 cookie是什么 xff1f 二 使用步骤开始代码实现会话是什么然后写入我们的账号信息 使用session访问登陆账号的url获取账号的书架上的数据 完整的代码补充比较暴力的获取方式 前言 我们在使用爬虫中会用到很多账号
  • pyspark报错 org.apache.spark.SparkException: Python worker failed to connect back.

    项目场景 xff1a 使用pycharm工具将spark分析完的数据存储到MySQL数据库中 问题描述 在程序执行过程中发生以下报错 xff1a org span class token punctuation span apache sp
  • python的tkinter(图形用户界面)

    目录标题 什么是图形用户界面 xff08 GUI xff09 Tinter函数和参数说明 xff08 常用 xff09 Lable 标签 xff1a 效果Button 按钮 效果 Entry 文本框 效果 Text xff08 多行文本框