第13.3节 图形界面开发tkinter

tkinter 界面设计工具 先推荐一个非tkinter的GUI框架Python Eel 。是Electron的python版 vb6https://gitcode.net/mirrors/cdhigh/Visual-Tkinter-for-Python(https://github.com/cdhigh/tkinter-designer) Figma +Tkinter https://blog.csdn.net/qq_41854273/article/details/118310241 visual... 阅读详情

一、 引言
老猿最开始是准备就tkinter单独开一个章节,但学了一段时间tkinter,最后放弃了,前一阵子还准备干脆不介绍相关的内容。主要原因有三个,一是tkinter没有界面设计的工具,所有界面布局靠开发人员代码完成,操作很麻烦;二是tkinter模块老猿认为还不成熟,具体来说,老猿遇到了一个问题,这个问题至今没有解决,这个问题老猿并不认为是单一的问题,而是对于复杂的需求tkinter的响应存在异常(具体问题请见《Python tkinter图形界面BUTTON事件控制和编辑框返回值出现异常》);三是有朋友推荐了好用的Python图形开发工具PyQt,虽然老猿至今也就知道了这个词,但给了老猿新的希望。因此老猿放弃了tkinter的学习和详细介绍。
但老猿还是基于半吊子的学习简单介绍一下tkinter,因为缺少它总感觉基础篇不完整。

二、 使用tkinter定义主窗口

  1. tkinter是Python图形开发的一个模块,使用前需要导入该模块。如:
    import tkinter as tk

  2. 在开发图形界面时,需要生成一个图形界面主窗口,所有后续组件都基于该主窗口布局。主窗口的生成语句调用tk.TK函数:
    mainwin = tk.Tk()

  3. 主窗口生成后可以调整大小,如将其设置为800*600:
    mainwin.geometry(‘800x600’)

  4. 可以设置窗口标题,如:
    mainwin.title(‘LaoYuanPython tkinter学习’)

  5. 最后执行mainwin.mainloop让窗口活起来可以响应操作。如:
    mainwin.mainloop()

如果窗口上还需放置其他控件,该语句应该是在所有控件布局后再执行。

三、 窗口内放置控件

  1. 布局标签
  1. 定义标签,第一个参数为标签要放置到的窗口
    l = tk.Label(mainwin,
    text=‘老猿Python’, # 标签的文字
    bg=‘white’, # 背景颜色
    font=(‘Arial’, 16), # 字体和字体大小
    width=60, height=4 # 标签长宽
    )
  2. 固定标签在窗口的位置
    l.pack()
  1. 布局文本编辑框
    text = tk.Entry(mainwin,show=’*’)
    text.pack()

  2. 布局按钮

  1. 定义按钮响应函数输出文本框输入内容
    def onpressbutton():
    print(“按钮被触动”)
    str=text.get()
    print(“输入内容为:”,str)
  2. 定义和布局按钮
    button = tk.Button(mainwin,text=“OK”,width=15,height=2,command=onpressbutton)
    button.pack()

定义触发事件时的函数(注意:因为Python的执行顺序是从上往下,所以函数一定要放在按钮定义的上面)

  1. 布局Frame
    Frame 是一个在 Windows 上分离小区域的部件, 它能将 Windows 分成不同的区,然后存放不同的其他部件. 同时一个 Frame 上也能再分成两个 Frame, Frame 可以认为是一种界面容器。
    frm = tk.Frame(mainwin)
    frm.pack()

对应控件如果要放到对应frame,需要在定义控件时的第一个窗口实例需要使用frame的实例。

  1. 布局菜单
  1. 创建一个菜单栏,这里我们可以把他理解成一个容器,在窗口的上方
    menubar = tk.Menu(mainwin)
    mainwin[‘menu’] = menubar
  2. 定义一个空菜单单元
    filemenu = tk.Menu(menubar, tearoff=0)
  3. 将上面定义的空菜单命名为“文件”,放在菜单栏中,就是装入那个容器中
    menubar.add_cascade(label=‘文件’, menu=filemenu)
  4. 定义菜单响应函数
    def showmenu():
    print(“菜单被点击”)
  5. 在“文件”中加入 “新建”、“打开”、“保存”的小菜单,如果点击这些单元, 就会触发showmenu的功能
    filemenu.add_command(label=‘新建’, command= showmenu)
    filemenu.add_command(label=‘打开’, command= showmenu)
    filemenu.add_command(label=‘保存’, command= showmenu)

当然tkinter模块远不止老猿现在介绍的这些控件,主程序窗口也还有其他市县方案、事件的处理也比本节介绍的更丰富,但其他内容老猿理解不深甚至没有学习,而网上关于tkinter的材料比较多,老猿在此就不再介绍了。

四、 本节对应完整源代码

from tkinter import messagebox as msgbox
import tkinter as tk

def onpressbutton():
   print("按钮被触动")
   str=text.get()
 
   msgbox.showinfo(message=(f"输入内容为:{str}"))

def showmenu():
    msgbox.showinfo(message=('点击了菜单'))
  
mainwin = tk.Tk()
mainwin.geometry('800x600')

mainwin.title('LaoYuanPython tkinter学习')
l = tk.Label(mainwin, 
    text='老猿Python',    # 标签的文字
    bg='white',     # 背景颜色
    font=('Arial', 16),     # 字体和字体大小
    width=60, height=4  # 标签长宽
    )
l.pack()
    
input = tk.StringVar()   
text =  tk.Entry(mainwin,show='*')
text.pack()
   
button = tk.Button(mainwin,text="显示输入内容",width=15,height=2,command=onpressbutton)
button.pack()


menubar = tk.Menu(mainwin)
mainwin['menu'] = menubar
filemenu = tk.Menu(menubar, tearoff=0)
menubar.add_cascade(label='文件', menu=filemenu)   
filemenu.add_command(label='新建', command= showmenu)
filemenu.add_command(label='打开', command= showmenu)
filemenu.add_command(label='保存', command= showmenu)

老猿Python,跟老猿学Python!
博客地址:https://blog.youkuaiyun.com/LaoYuanPython

请大家多多支持,点赞、评论和加关注!谢谢!

【Python】【Tkinter】图形界面设计(GUI) 一. 窗口创建及常见函数 from tkinter import tk #初始化tk() root = tk.Tk() #设置标题 root.title('Python GUI Learning') #设置窗口大小 root.geometry('380x300') #设置窗口是否可变长、宽,True:可变,False:不可变 root.resizable(width=False, height=True) #…… 设置控件 #进入消息循环 root.mainloop() 常见函数 函数 含义 阅读详情

相关推荐

实战tkinter图形界面开发_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)...

一、前言由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅。一、前言二、Tkinter 是什么三、Tkinter 控件详细介绍1. Tkinter 模块元素简要说明2. 常用窗口部件及简要说明:四、动手实践学习1. 创建主窗口及Label部件(标签)创建使用2. Button窗口部件3. Entry窗口部件4. Text窗口部件5. List...

weixin_33734921的博客 914

Python tkinter快速可视化开发GUI界面指南:详细教程(附带工具)

Python tkinter快速可视化开发GUI界面指南:详细教程(附带工具),可通过拖拽实现GUI代码的开发,适用对象 适用于学习了TKinter并不想太麻烦写GUI代码,也不想用其他工具和框架 比如wxPython,PyQt4的同学。 适用于界面不太复杂的小程序开发,界面复杂的还是适用wxPython等框架吧。 因为TKinter为Python标准库,使用TKinter完成的Python程序可以称为 “绿色软件”,不需要目标机器上安装wxPython,PyQt4等框架,只要有Python 的机器就能运行

6万+

tkinter日历程序的设计

这是一个使用 Python tkinter 库开发的图形界面日历程序。它能够显示当前月份的日历,并允许用户通过按钮切换查看不同的月份。

大白菜代码的博客 1401

Python图形界面 GUI -- tkinter(含简单windows桌面项目)

是 Python 的标准图形用户界面(GUI)工具包,用于创建桌面应用程序。它是 Python 标准库的一部分,无需单独安装即可使用。Tkinter 是基于 Tcl/Tk 的一个封装,具有简单易用的特点,是开发 GUI 程序的一个非常流行的选择。

weixin_54925172的博客 3776

tkinter combobox 改变事件_Tkinter图形界面设计(GUI)

目录:1、简单实例2、Label控件3、Button控件4、Entry控件5、点击按钮输出输入框中的内容6、Text控件7、带滚动条的Text8、Checkbutton多选框控件9、Radiobutton单选框10、Listbox控件一11、Listbox控件二12、Listbox控件三13、Listbox四14、Scale控件15、Spinbox控件16、Menu顶层菜单17、Menu鼠标右键菜...

weixin_36337548的博客 1505

python界面开发 - 布局管理器

1. python图形界面开发 1.1. Tkinter 1.2. PyQt 1.3. wxPython 1.4. PyGTK:基于GTK 1.5. Kivy 1.6. 可视化工具 2. Tkinter 开发 3. 布局管理器 3.1. 布局管理器 pack() 3.2. 布局管理器 grid() 3.3. 布局管理器 place()

BullKing8185的博客 2596

实战tkinter图形界面开发_Tkinter python(图形开发界面)

Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。目录:1、简单实例2、Label控件3、Button控件4、Entry控件5、点击按钮输出输入框中的内容6、Text控件7、带滚动条的T...

weixin_39787057的博客 1043

Python tkinter(GUI编程)模块教程:打造出精美图形用户界面

在Python中,tkinter是一种简单易用的GUI编程工具,可以帮助我们快速地创建图形用户界面。Python tkinter模块是构建图形用户界面的一个重要工具,它提供了丰富的控件和事件,能够轻松地实现各种图形化界面设计。在这篇文章中,我们简单介绍了如何使用tkinter模块来创建GUI,并进行了一些基础控件的演示。如果你使用的是Python 3.1或更高版本,那么Tkinter就已经安装在你的计算机上了。在这个例子中,我们使用Entry控件创建了一个文本框,用于用户输入。

. 4567

Day13-1 【图形界面】概述

你是不是在想,Python 能不能写图形界面应用呢?当然可以!Python 支持多种图形界面库,其中最受欢迎的就是Tkinter,它甚至是 Python 自带的库,意味着你根本不需要额外安装任何东西,只需要写几行代码,轻松搞定图形界面。

max202011161630的博客 1134

Tkinter图形界面编程实战教程

Tkinter作为Python标准GUI库,以跨平台、零依赖优势成为桌面开发首选。教程详解其核心机制,涵盖窗口创建、13类组件应用及pack/grid/place布局管理,助力快速构建交互界面,适合工具开发、数据可视化等场景。

ylmx5201314的博客 247

Python图形界面(GUI)Tkinter笔记(目录)

【*】Python图形界面(GUI)Tkinter笔记(总目录)

肥辉的学习笔记 345

python图形界面tkinter使用技巧

使用python的tkinter库实现滚动文本框的方式,目前我知道的有两种,一种方式是使用frame容器来放置Text控件和Scrollbar控件,再将Text控件和Scrollbar控件联动;另一种方式则是直接使用tkinter库中的ScrollText控件。

booze_的博客 3429

Tkinter 图形界面日历

用python程序实现制作一个 Tkinter 图形界面日历,用户选择某年某月,图形化显示当月日历功能。创建日历界面整个组件的布局是 8x7 的 grid 表格方式。第一行显示日历头部,包括年月日的显示与选择;第二行显示周日、周一、周二、周三、周四、周五、周六标签;OptionMenu 为可选菜单可以使用变量的 get 方法获得选取的选项值。这个程序创建了一个名为 “Calendar” 的窗口,其中包括带有年份和月份的 OptionMenu、星期标签、用于向前/向后浏览月份的按钮以及日期网格。

Deng872347348的博客 785

Python图形界面 Tkinter入门13

多输入框,图形按钮,输入框内容核验

mango大侠的博客 288

dpdk 源码分析 rte_ring

rte_ring源码分析

qq_40843445的博客 929

实战指南:用Python实现ONVIF WS-Discovery设备发现(附完整代码)

本文提供了一份详细的实战指南,介绍如何使用Python实现基于ONVIF标准的WS-Discovery设备发现协议。文章深入解析了协议原理、网络通信模型,并提供了完整的代码实现,帮助开发者快速构建智能安防和物联网应用中的设备自动发现工具,有效提升网络设备集成与管理的效率。

chair的专栏 1113

Python编程:Tkinter图形界面设计(2)

Button 控件是一个标准的 Tkinter 部件,用于实现各种按钮。按钮可以包含文本或图 像,还可以关联 Python 回调函数。Tkinter 的按钮被按下时,会自动调用回调函数。按钮文本可跨越一个以上的行。此外,文本字符可以有下划线,例如标记的键盘快捷 键。

gongdiwudu的专栏 9080

VS2022 中 std::mutex 静态初始化陷阱:一次诡异崩溃的排查记录

VS2022中使用std::mutex时遇到的静态初始化陷阱问题。该问题源于VS2022 17.4版本为std::mutex添加constexpr支持后,全局静态初始化可能导致系统资源未就绪时锁失效或崩溃。文章分析了问题现象、影响范围,并提供了解决方案。最后给出了排查清单和核心建议

qq_34552942的博客 952

python tkinter游戏界面_python tkinter游戏开发

使用python制作简单的游戏案例编辑环境:python3.7编译工具:vscode案例目录:1.序列应用——猜单词游戏2.面向对象设计应用——发牌游戏3.图形界面设计——猜数字游戏4.Tkinter图形绘制——图形版发牌程序5.Python图像处理——人物拼图游戏一、序列应用——猜单词游戏运行结果:WORDS中定义需要被猜的词库,默认游戏自动开始,使用random函数从WORDS中随机选择一个单...

weixin_39800875的博客 967

解决若依Vue3前后端分离---路由切换时显示白屏

解决基于Vue3若依前后端分离项目中出现的路由正常切换但是就是不显示数据的问题,也就是不发起网络请求的问题。

简单点的博客 1604

Android16 RK3576修改亮度调节为线性调节

文章摘要: 本文分析了Android系统中亮度调节的非线性问题,并提供了线性化改造方案。首先通过追踪Settings和SystemUI代码,发现亮度调节使用了BrightnessUtils类中的非线性Gamma空间转换算法。然后重点修改了BrightnessUtils类,将原有的Hybrid Log Gamma(HLG)算法替换为简单的线性映射公式。最后在自定义工具窗口中实现了基于系统标准接口的亮度调节功能,通过SeekBar的0-100%百分比值线性映射到1-255的系统亮度值。改造后的亮度调节更加直观,

tzj1058756809的博客 75

tkinter label背景透明_Tkinter图形界面设计(GUI)

目录:1、简单实例2、Label控件3、Button控件4、Entry控件5、点击按钮输出输入框中的内容6、Text控件7、带滚动条的Text8、Checkbutton多选框控件9、Radiobutton单选框10、Listbox控件一11、Listbox控件二12、Listbox控件三13、Listbox四14、Scale控件15、Spinbox控件16、Menu顶层菜单17、Menu鼠标右键菜...

weixin_39884492的博客 1437

【agent实操】OpenClaw玩转股票分析多个AI智能体(agent)出谋划策

本文介绍了一个基于OpenClaw的多Agent股票分析系统。该系统采用"三人组+总调度"模式,包含三个核心Agent:小牛马(策略中枢)、牛老二(基本面分析师)和牛老三(技术面分析师)。相比单Agent模式,该系统具有分析更专业、权限分级更安全、成本控制更优等优势。文章详细说明了系统部署的6个步骤,包括创建独立Agent工作区、配置专属人设与技能等,并提供了环境检查命令和验证方法。通过这种多Agent协作的方式,可以实现更专业、更安全的股票分析。

海兰 807

python与tkinter_Python与Tkinter编程_IT教程网

资源名称:Python与Tkinter编程内容简介:Thinter是解释性脚本语言Pyhton的图形界面开发工具包,是一个清晰的、面向对象的图形界面开发工具,它可以让你快速地开发出可以运行在Unix、Macintosh和Windows等系统平台下的Python应用程序。本书详细地介绍了Python语言的语法和函数及其界面的开发方法,重点介绍了在Tkinter可视化平台下的编程方法。本书非常适合各个...

weixin_36429611的博客 298

【测开求职】面试题:计算机网络 详细版整理

本篇文章是笔者为准备研究生复试和校招而写,因此主要针对问答,注重理解,而不在于细节计算。读者可以先查看上面的链接走一遍计算机网络的整体框架结构。其中,重点难点以及易混淆的知识点,笔者会用其他文章进行了详述,在知识点处贴好了链接,有需要的可以查阅。

vector的博客 5936

Wi-Fi数据帧类别

QoS

1042484520@qq.com(邮箱) 3156
上一篇: 第13.2节 关于闭包
下一篇: 第13.4 使用pip安装和卸载扩展模块
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值