当前位置: 首页 > news >正文

Tkinter教程

Tkinter

文章目录

  • Tkinter
    • 窗口主体框架
    • 窗口内容
      • 1. Label & Button(标签和按钮)
      • 2. Button
      • 3. Entry & Text(输入 文本框)
        • 窗口主题框架
        • 窗口内容(窗口上的控件)
      • 4. Listbox(列表框)
      • 5. Radiobutton 选择按钮

本文简单介绍了tkiner库的使用, 适合初学者入门, 适合用来做小工具, 比如计算器, 简单的GUI等.
从目录我们可以找到Tkiner主要包括两部分一个是主体框架,一个是窗口内容,接下来我们一起看看。

参考博客【Python】Tkinter教程

由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。

在下一篇文章中我们将使用Tkinter、socket、threading实现用python模拟多人聊天服务器以及客户端

import tkintertop = tkinter.Tk()
#进入消息循环
top.mainloop()

在这里插入图片描述

窗口主体框架

每一个 tkinter 应用的主体框架都可以包含下面这部分. 定义 window 窗口 和 window的一些属性, 然后书写窗口内容, 最后执行window.mainloop让窗口活起来.

import tkinter as tkwindow = tk.Tk()
window.title('my window')
window.geometry('500x500') #注意是x不是*
window.mainloop()

在这里插入图片描述

窗口内容

1. Label & Button(标签和按钮)

这次我们会建立一个用来描述的标签 tk.Label, 比如:

import tkinter as tkwindow = tk.Tk()
window.title('my window')
window.geometry('500x500')
l = tk.Label(window,text= 'Hello, This is Tkinter',bg = 'pink',font=('Arial', 12),width=15, height=2)l.pack()window.mainloop()

在这里插入图片描述

2. Button

window = tk.Tk()
window.title('my window')
window.geometry('500x500')# 定义一个label
var = tk.StringVar()
l = tk.Label(window,textvariable=var,bg = 'pink',font=('Arial', 12),width=15, height=2)
l.pack()on_hit = False# 定义一个按钮
def hit_on():global on_hitif on_hit == False:on_hit = Truevar.set('You hit me')else:on_hit = Falsevar.set('')b = tk.Button(window,text='点我',width=15,height=2,command=hit_on)
b.pack()window.mainloop()

在这里插入图片描述
点击之后:
在这里插入图片描述

3. Entry & Text(输入 文本框)

窗口主题框架

每一个tkinter应用的主体框架都包含以下几部分:

  • 主窗口: window,及窗口的一些基本属性(标题、大小)
  • 让窗口活起来: window.mainloop()
import tkinter as tkwindow = tk.Tk()
window.title('my window')# 窗口尺寸
window.geometry('500x500')# 显示出来
window.mainloop()

在这里插入图片描述

窗口内容(窗口上的控件)
  • 创建按钮分别触发两种情况
b1 = tk.Button(window,text='insert point',width=15,height=2,command=insert_point)
b1.pack()b2 = tk.Button(window,text='insert end',width=15,height=2,command=insert_end)
b2.pack()
  • 创建输入框entry, 用户输入任何内容都显示为*
e = tk.Entry(window, show='*')
e.pack()
  • 创建一个文本框用于显示
t = tk.Text(window, height=2)
t.pack()
  • 定义触发事件的函(注意:函数Python的执行顺序从上往下,所以函数一定要放在按钮上面)
def insert_point():var = e.get()t.insert('insert', var)def insert_end():var = e.get()t.insert('end', var)
  • 完整代码
import tkinter as tk 
window = tk.Tk()
window.title('my window')# 窗口尺寸
window.geometry('500x500')# 定义一个输入框entry
e = tk.Entry(window,show='None')
e.pack()# 定义按钮功能
def insert_point():var = e.get()t.insert('insert', var)def insert_end():var = e.get()t.insert('end', var)# 定义按钮
b1 = tk.Button(window,text='insert point',width=15,height=2,command=insert_point)
b1.pack()b2 = tk.Button(window,text='insert end',width=15,height=2,command=insert_end
)
b2.pack()# 定义文本框
t = tk.Text(window, height=2)
t.pack()# 窗口显示
window.mainloop()

在这里插入图片描述

4. Listbox(列表框)

import tkinter as tkwindow = tk.Tk()
window.title('my window')
window.geometry('500x500')# 创建一个label
var1 = tk.StringVar()l = tk.Label(window,bg='pink',width=4,textvariable=var1)
l.pack()# 按钮事件
def print_selection():value = lb.get(lb.curselection())var1.set(value)# 创建一个按钮
b1 = tk.Button(window,text='print selection',width=15,height=2,command=print_selection
)
b1.pack()# 创建一个Listbox和变量var2,并将var2的值赋给Listbox
var2 = tk.StringVar()
var2.set((11, 22, 33, 44))# 创建Listbox
lb = tk.Listbox(window,listvariable=var2
)# 创建一个list并将值循环添加到Listbox控件中
list_items = [1, 2, 3, 4]
for item in list_items:lb.insert('end', item)
lb.insert(1, 'first') #向lb(Listbox)中添加值
lb.insert(2, 'second')
lb.delete(2)
lb.pack()window.mainloop()

在这里插入图片描述

5. Radiobutton 选择按钮

import tkinter as tkwindow = tk.Tk()
window.title('my window')
window.geometry('200x200')# 创建一个Label
var = tk.StringVar()
l = tk.Label(window, bg = 'yellow',width = 20,height= 2,text = 'empty')
l.pack()# 实现将选择的选项显示在label
def print_selection():l.config(text='you have selected ' + var.get())# 创建几个Radiobutton
r1 = tk.Radiobutton(window,text='Option A',variable=var,value='A',command=print_selection)
r1.pack()r2 = tk.Radiobutton(window,text='Option B',variable=var,value='B',command=print_selection
)
r2.pack()r3 = tk.Radiobutton(window,text='Option C',variable=var,value='C',command=print_selection
)
r3.pack()window.mainloop()

在这里插入图片描述
接下里我们将使用Tkinter、socket、threading实现用python模拟多人聊天服务器以及客户端

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 微信支付流程
  • 【实现100个unity特效之22】unity用Particle粒子系统制作2d龙卷风特效效果
  • 【Rust】使用开源项目搭建瓦片地图服务
  • xcode14.2学习笔记 swift5开发macos网络程序笔记
  • CPU缓存一致性机制详解
  • 我的第一个CUDA程序
  • AI大模型入门基础教程(非常详细),AI大模型入门到精通,收藏这一篇就够了!
  • C# MaterialDesign抽屉式风格
  • 静态代理和动态代理
  • JavaEE从入门到起飞(八) ~ Git
  • 今日(2024 年 8 月 15 日)科技新闻
  • RESTful API设计指南:构建高效、可扩展的Web服务
  • 仿RabbitMq实现简易消息队列正式篇(连接篇)
  • C 开源库之cJSON
  • 比特币8.12学习问题
  • @jsonView过滤属性
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • Electron入门介绍
  • Gradle 5.0 正式版发布
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Java应用性能调优
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 闭包,sync使用细节
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 新版博客前端前瞻
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 最近的计划
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #QT(串口助手-界面)
  • ()、[]、{}、(())、[[]]命令替换
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (阿里云万网)-域名注册购买实名流程
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二十四)Flask之flask-session组件
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (七)Flink Watermark
  • (十六)视图变换 正交投影 透视投影
  • (算法)区间调度问题
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)Docker基本介绍
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .htaccess配置常用技巧
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .NET Core中如何集成RabbitMQ
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET构架之我见
  • .Net实现SCrypt Hash加密
  • .NET中使用Redis (二)
  • @Async注解的坑,小心