实现Python图形界面框架TkInter写GUI界面应用简介过程操作

前言

它的底层是Tcl/Tk,先用起来再说,另外Python毕竟是面向对象语言,所以全文会使用到class和对象,尽量日后能满足开发项目的需求。

(备注:Tcl/Tk 是一种简明,高效,可移植性好的编程语言。在信息产业领域具有广泛的应用。)

Hello World

从Hello World写起,涉及到一个简单的文本控件Label,当然控件需要显示的容器,此处我们将其显示在一个Window上,也会使用一种布局方式pack()

import tkinter as tk
class RootWindow(tk.Tk):
def __init__(self, **kwargs):
super().__init__(**kwargs)
label = tk.Label(self, text="Hello World", padx=10, pady=10)  # 默认容器为window
label.pack()  # 默认side=tk.TOP

if __name__ == "__main__":
my_window = RootWindow()
my_window.mainloop()

1、首先导入tkinter模块(一个python包模块对象),然后使用别名tk,这是为了少写几个字符而已,你也可以不使用别名功能

2、创建RootWindow类,此类必须继承tkinter模块下的Tk类,Tk类产生的对象,表示GUI中的一个Window

3、主模块作为脚本执行时,创建RootWindow对象(Tk类的子类对象,表示is a Tk对象),接着调用Tk对象的mainloop()方法,让主线程一直在事件循环中,确保程序不退出,此时的GUI应用才会一直运行

Window的实际效果

Hello World的文本位于一个叫做Label的控件中,Label控件类位于tkinter包中,它是Widget的子类,产生的每个对象表示一个文本控件,在创建Label对象时,必须传入一个容器对象,表示这个控件依附在哪个容器中,几乎所有前端技术都会涉及到的技术点,就是控件树的概念(页面都是树形结构)

另外调用了Label的pack()方法的使用,这个pack()方法表示布局方式,也称作布局管理器,它只能水平或者垂直的摆放控件,类似于Android中的LinearLayout,现在使用tkinter肯定会嵌套使用布局方式,这样才能做出复杂的GUI应用!

窗口

tkinter中根Window使用tkinter包模块下的Tk对象,而子Window,则可以使用tkinter包模块下的Toplevel

控件

自带了很多控件类,它们几乎都是Widget的子类,使用时,只需要创建控件对象即可,后面我们会详细介绍每一种控件,这里简单提及Label、Button、ListBox、Radiobutton等等

容器

如果需要将多个控件组合在一起作为一个整体,那么tkinter包模块下的Frame就可以作为它们的容器,在实际项目中,我们会大量的使用Frame去组合控件,其实Frame也算做控件,只不过它的作用是包含其他控件而已。(备注:LabelFrame也是容器类,用于包含控件)

布局方式

除了Hello World中提及的pack()方式、还有常用的grid()、place(),它们也被称作布局管理器,专门管理控件如何摆放的,日后我们的代码里会经常用到布局方式,还有Panedwindows的使用

双向绑定的数据对象

它们全部是作为位于tkinter包模块下的Variable类的子类而存在,包括IntVar、StringVar、BooleanVar、还有一个单独的Var,它们可以和某个控件绑定在一起,实现双向绑定:当改变控件的值、对应的Var值会改变;当改变Var值,控件上的显示也会跟着改变

事件绑定类型

控件可以绑定一些事件,这些事件类型包括一些常见的交互行为,只要事件发生,为控件绑定的可调用对象,即会被调用,常见的事件有:

KeyPress 键盘的按键被按下时激活KeyRelease 键盘的按键按下后松开时激活Button 点击鼠标时激活ButtonRelease 点击鼠标后松开时激活Motion 鼠标的光标在控件上移动时激活Enter 鼠标光标进入控件时激活Leave 鼠标光标离开控件时激活MouseWheel 鼠标滑轮滚动时激活FocusIn 控件获得焦点时激活,例如鼠标点击输入控件开始进行输出FocusOut 控件失去焦点时激活,例如鼠标离开了输入框Configure 控件的配置发生改变,例如大小变化时激活

提示对话框

GUI应用中,对话框用于提示人类错误,或者询问一些基本信息,tkinter框架中自带了几个对话框供你使用,它们位于tkinter包中的messagebox模块中

文件对话框

选择本地文件路径的对话框,位于tkinter包中的filedialog模块中,即有选择目录的,也有选择文件的,后面我们每个都使用一下

图片

使用PhotoImage对象,只要指定了图片文件的路径,即可在应用上显示图片,默认指定文件名时,只会在当前工作目录下查找图片

画板

Canvas的支持,可以使用通过代码绘制一些简单的图形,另外也可以和matplotlib数据可视化库结合起来使用

ttk模块

大佬注意到tkinter模块的使用中,有一些基本需求,控件功能上满足的不够好,所以又提供了一个ttk模块,在ttk模块中提供了很多控件类,这些类有新的默认样式,当然是可以替代原先tkinter下控件类,下面有很多控件

持久化

我们还有一些需要在程序结束后,仍然保留在磁盘里的方式,这就是数据持久化,可以使用标准库中的所有方式,如果是简单的应用配置信息,使用configparser模块即可满足需求……

单元测试

位于tkinter包模块下,有个test包,非常值得学习,大佬是怎么做单元测试的?

设计

做GUI应用,还是需要提前设计原型的,那么采用什么工具设计原型图比较好呢?随便你采用什么方式画出来即可

做出多复杂的应用?

无非开发成本高一些,只要有心,我相信使用tkinter照样可以做出像样的GUI应用!

以上就是实现Python图形界面框架TkInter写GUI应用简介过程操作的详细内容,更多关于Python图形界面框架TkInter的资料请关注我们其它相关文章!

(0)

相关推荐

  • python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)

    更新: 2017.07.17 补充滚动条.win批处理拉起py 2017.08.13 新增自定义图标 一.背景: 1.工作中自己及同事在查数据库.测试接口时需要对一些字符串或json串作预处理,目前这些问题网上均有在线转换的工具,但很繁杂,可能需要打开几个网页窗口: 2.之前做的文本处理工具是基于cmd命令行的,不太友好: 3.自己做的一些小工具也基本都是命令行执行的,也想接触下GUI: 基于以上,了解到python自带的tkinter库可以初步满足UI的需求,业余时间做了个图形化工具,涉及窗口

  • Python GUI编程学习笔记之tkinter界面布局显示详解

    本文实例讲述了Python GUI编程学习笔记之tkinter界面布局显示.分享给大家供大家参考,具体如下: 相关内容: pack 介绍 常用参数 使用情况 常用函数 grid 介绍 常用参数 使用情况 常用函数 place 介绍 常用参数 使用情况 常用函数 首发时间:2018-03-04 14:20 pack: 介绍: pack几何管理器按行或列打包小部件. 可以使用填充fill,展开expand和靠边side等选项来控制此几何体管理器. pack的排放控件的形式就像将一个个控件按大小从上到

  • Python中使用Tkinter模块创建GUI程序实例

    使用Tkinter模块来创建简单的GUI程序. Tkinter的Widgets有:Button.Canvas.Checkbutton.Entry.Frame.Label.Listbox.Menu.Menubutton.Message.Radiobutton.Scales.Scrollbar.TEXT.Toplevel等. 例: 复制代码 代码如下: # This program displays an empty window. import Tkinter def main():   main

  • 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)

    上一篇我们写了怎么将xmind转换成想要的excel格式,这篇再讲一下用Python自带的tkinter库设计一个简单的gui界面,让我们的xmind路径,用例版本执行等都通过这个gui界面来输入,生成我们需要的excel文件. Python要生成gui,库还是比较多的比如wxpython,这个我看了下,感觉比较难懂,毕竟只是设计一个比较简单的gui界面,所以就使用了tkinter库,感觉这个还是比较方便易懂的,大家可以在这里学习tkinter库http://c.biancheng.net/py

  • python3使用tkinter实现ui界面简单实例

    复制代码 代码如下: import timeimport tkinter as tk class Window:    def __init__(self, title='nms', width=300, height=120, staFunc=bool, stoFunc=bool):        self.w = width        self.h = height        self.stat = True        self.staFunc = staFunc       

  • 实现Python图形界面框架TkInter写GUI界面应用简介过程操作

    前言 它的底层是Tcl/Tk,先用起来再说,另外Python毕竟是面向对象语言,所以全文会使用到class和对象,尽量日后能满足开发项目的需求. (备注:Tcl/Tk 是一种简明,高效,可移植性好的编程语言.在信息产业领域具有广泛的应用.) Hello World 从Hello World写起,涉及到一个简单的文本控件Label,当然控件需要显示的容器,此处我们将其显示在一个Window上,也会使用一种布局方式pack() import tkinter as tk class RootWindo

  • Python 图形界面框架TkInter之在源码中找pack方法

    目录 一.HelloWorld看pack() 二.pack()方法分析 三.pack_configure()方法分析 四.Label的继承结构 五.查看pack()方法源码的收获 前言: tkinter提供了3种布局管理方式: 1.pack 2.grid 3.place 每种布局管理器都非常有用,根据不同的需求,选择对应的布局方式,每个控件都可以使用pack作为布局管理器,从源码中看下pack()在哪里? 一.HelloWorld看pack() import tkinter   my_windo

  • Python使用django框架实现多人在线匿名聊天的小程序

    最近看到好多设计类网站,都提供了多人在线匿名聊天的小功能,感觉很有意思,于是基于python的django框架自己写了一个,支持手动实时更名,最下方提供了完整的源码. 在线聊天地址(无需登录,开一个窗口,代表一个用户): http://zhaozhaoli.vicp.io/chatroom/happy/ 移动端聊天效果图: 网页版聊天效果图: 实现思路: 发送的消息通过ajax先写入数据库,通过ajax的循环请求,将写入数据库的消息显示到前端界面. 前端核心代码: <script> $(fun

  • 如何Tkinter模块编写Python图形界面

    一.为何使用Tkinter而非PyQt 众所周知,在Python中创建图形界面程序有很多种的选择,其中PyQt和wxPython都是很热门的模块包,这些第三方的图形界面模块功能强大.配置丰富,界面美观,是很多人的选择. 州的先生也经常使用PyQt5来为Python程序写上图形界面,以方便程序的使用. 而今天,我们要介绍的是Python内置的一个图形界面模块--tkinter. 在网络上有很多抱怨Tkinter模块的言论,比如:界面丑.不灵活.扩展功能差.模块少--等等,诚然,Tkinter确实有

  • 用python写一个带有gui界面的密码生成器

    需要用到的库: tkinter:构建gui界面 pyperclip:复制功能 random:生成随机数 string:处理字符串 代码: from tkinter import * import random, string import pyperclip root =Tk() root.geometry("400x400") root.resizable(0,0) root.title("密码生成器") heading = Label(root, text =

  • 如何用python GUI(tkinter)写一个闹铃小程序(思路详解)

    事情的起因是帮助一个朋友写一个程序,来控制他们单位的铃声,平时竟然是手动打铃(阔怕) 事情的第一步:理清思路.需要用到python的几个知识:1.tkinter一些函数控件,2.控件和函数之间的联系(主用TreeView控件),3.读写数据入txt文档(高级版可换为数据库),4.数据的类的封装. 需要其他方面的知识:1.简单设计界面布局,2.确保程序易于使用的不反人类细节. 考虑清楚后,那么我开始学习一下相关知识. (1)python中作为面向对象的一份子,Class(类)和Instance(实

  • Python实现带GUI界面的手写数字识别

    目录 1.效果图 2.数据集 3.关于模型 4.关于GUI设计 5.缺点 6.遗留问题 1.效果图 有点low,轻喷 点击选择图片会优先从当前目录查找 2.数据集 这部分我是对MNIST数据集进行处理保存 对应代码: import tensorflow as tf import matplotlib.pyplot as plt import cv2 from PIL import Image import numpy as np from scipy import misc (x_train_a

  • python图形界面tkinter的使用技巧

    目录 一.python图形界面tk之滚动文本框的实现示例 二.python图形界面tk之控件随窗口自变化的实现示例 三.python图形界面tk之顶部菜单栏实现示例 四.python图形界面tk之多选框实现示例 五.python图形界面tk之打开文件实现示例 六.python图形界面tk之保存文件实现示例 一.python图形界面tk之滚动文本框的实现示例 使用python的tkinter库实现滚动文本框的方式,目前我知道的有两种,一种方式是使用frame容器来放置Text控件和Scrollba

  • python图形开发GUI库wxpython使用方法详解

    一.python gui(图形化)模块介绍: Tkinter :是python最简单的图形化模块,总共只有14种组建 Pyqt     :是python最复杂也是使用最广泛的图形化 Wx       :是python当中居中的一个图形化,学习结构很清晰 Pywin   :是python windows 下的模块,摄像头控制(opencv),常用于外挂制作 二.wx模块的安装: C:\Users\Administrator> pip install wxpython 三.图形化介绍   四.wx主

随机推荐