一、Tkinter介绍

Tkinter是一个python模块,是一个调用Tcl/Tk的接口,它是一个跨平台的脚本图形界面接口。Tkinter不是唯一的python图形编程接口,但是是其中比较流行的一个。最大的特点是跨平台,缺点是性能不太好,执行速度慢。

一般使用Tkinter的方法是:

From Tkinter import *

或者: import Tkinter 两者的区别我们前面讲模块的时候已经说过了。

二、Tkinter的使用

先看一下GUI程序的开发,熟悉MFC的朋友应该不会陌生。在GUI程序中,我们会有一个顶层窗口,在这个顶层窗口上可以包括所有的小窗口对象,像标签,按钮,列表框等等,也就是说顶层窗口时我们放置其他窗口或者控件的地方。我们用下面的语句可以创建一个顶层窗口,或者叫根窗口:

Import Tkinter

top = Tkinter.Tk()

(如果前面是用的from Tkinter import * ,那么Tk()就够了)

然后我们就可以在这个根窗口上设置“组件”了。通常这些组件会有一些相应的行为,比如鼠标点击,按下等等,这些称为事件,而程序会根据这些时间采取相应的反应,称为回调。这个过程成为事件驱动。

所有的创建和放置完毕后,就立刻进入主循环,代码如下:

Tkinter.mainloop( )

Tk的组件有很多,不可能一一介绍,通过一个小例子看看其中一个标签的使用吧。

>>> import Tkinter

>>> top = Tkinter.Tk()

>>> label = Tkinter.Label(top,text='Hello World')

>>> label.pack()

>>> Tkinter.mainloop()

运行结果就是

下面解释一下:

第一行,是导入模块。

第二行,创建主窗口。

第三行,创建label标签,它是有Tkinter的一个方法Label来实现的,关于Label的帮助可以help一下。

第四行,pack()是用来管理和显示组件的,它的参数我们以后再说。

第五行,mainloop()进入主循环。剩下的事就系统的了。

下面看看组件的配置。Tk中的每一个组件都有很多option,通过改变这些option可以改变组件的外观,比如显示的内容,颜色,大小,位置,事件处理函数等。

比如: w=label(root,text='hello',fg='red')

创建一个w,第一个参数时他的master widget,是root,所有参数都有默认的。我们可以用默认的来创建,w.cget(option)得到一个option的值。同样可以用w.config(option='')来设置某个参数的值。

三、Tkinter的几何管理器

熟悉GUI编程的人知道,放好每个组件的是很繁琐的,不仅要调整自身大小,还要

整和其他组件的相对位置。Tk提供了三个管理器来帮助我们:Pack  Grid  Place

1、pack

Pack使用很简单,就是w.pack(option)。常用的option有:

Side 表示把组件放到哪一边,TOP(上),BOTTOM(下),LEFT,RIGHT

Padx和pady  表示parcel的每一个边和组件的预留空间。

Ipadx和ipady,表示组件的每一个边和他包含的内容之间的预留空间。

Anchor表示在parcel放置组件的方式,缺省时CENTER。

2、grid

使用方法和pack类似。

3、place

精确的摆放一个组件的位置,一般不太用。

关于这个三个的详细使用和算法可以参考相关资料。

下面看最后一个例子:

先看一下结果。

通过拖动进度条而改变文字大小

看一下代码:

from Tkinter import *  #引入模块

#resize函数是用来改变文字大小的,当进度条改变时调用

def resize(ev=None):

label.config(font='Helvetica -%d bold' % scale.get())

#config函数就是通过设置组件的参数来改变组件的,这里改变的是font字体大小

top=Tk()   #主窗口

top.geometry('600x400')  #设置了主窗口的初始大小600x400

label=Label(top,text='Hello world!',font='Helvetica -12 bold')  #设置标签字体的初始大小

label.pack(fill=Y,expand=1)

#scale创建进度条,设置

scale=Scale(top,from_=10,to=40,orient=HORIZONTAL,command=resize)

scale.set(12)  #设置起始位置

scale.pack(fill=X,expand=1)

quit = Button(top,text='QUIT',command=top.quit,activeforeground='white',

activebackground='red')

quit.pack()

mainloop()

python3.6 messagebox_Python Tkinter GUI编程入门介绍相关推荐

  1. pythonguitkinter编程入门_Python Tkinter GUI编程入门介绍

    一.Tkinter介绍 Tkinter是一个python模块,是一个调用Tcl/Tk的接口,它是一个跨平台的脚本图形界面接口.Tkinter不是唯一的python图形编程接口,但是是其中比较流行的一个 ...

  2. python的gui编程用途_Python19-03_GUI编程----GUI编程的介绍(第一个程序)

    GUI编程的介绍(第一个程序) GUI图形用户界面编程 我们前面实现的都是基于控制台程序, 程序和用户交互通过控制台来完成. GUI(Graphics User Interfance)即图形用户界面编 ...

  3. Python编程实例-Tkinter GUI编程基础超级详解

    Tkinter GUI编程基础超级详解 1.什么是Tkinter Python 有很多 GUI 框架,但 Tkinter 是唯一内置到 Python 标准库中的框架. Tkinter 有几个优势. 它 ...

  4. python qt gui快速编程 pdf_翻译:《用python和Qt进行GUI编程》——介绍

    介绍: 这本书讲的是如何利用Python和Qt来开发GUI应用程序的.仅仅需要一点点必备的知识:你可以使用一些面相对象的语言来编程,例如C++,C#,java或者python等等.在富文本编辑的那些章 ...

  5. Java的GUI编程---AWT介绍

    AWT AWT介绍 包含了很多类和接口.用于GUI编程:图形用户界面编程 元素:窗口,按钮,文本框 java.awt 组件和容器 Frame package com.akita.lesson01;im ...

  6. python3.6运行界面_python3.6 +tkinter GUI编程 实现界面化的文本处理工具

    更新: 2017.07.17 补充滚动条.win批处理拉起py 2017.08.13 新增自定义图标 --------原创 blogs: http://www.cnblogs.com/chenyueb ...

  7. python3.6 +tkinter GUI编程 实现界面化的文本处理工具

    更新: 2017.07.17 补充滚动条.win批处理拉起py 2017.08.13 新增自定义图标 --------原创      blogs:    http://www.cnblogs.com/ ...

  8. python3 gui tk代码_【基础】学习笔记30-python3 tkinter GUI编程-实操12

    import tkinter as tk win = tk.Tk() menu = tk.Menu(win)  # 创建顶层菜单 filemenu = tk.Menu(menu, tearoff=0) ...

  9. Python3 GUI编程入门程序示例

最新文章

  1. 查看mysql主外键信息
  2. echart 多柱图只显示部分数据标签_2分钟上手、3小时学会无代码软件开发---Echarts数据可视化...
  3. 使用PHP+Redis实现延迟任务,实现自动取消订单功能
  4. boost::mpi::cartesian_communicator相关用法的测试程序
  5. 如何做好游戏内实时语音体验
  6. linux挂载多个目录下,linux – 如何在centos上使用nfs4挂载多个文件夹?
  7. linux系统高级管理工具包,linux两大系统的包管理工具
  8. 数字化转型下的银行云单元架构
  9. python表格写操作单元格合并
  10. 智能化服务器怎么调,怎么设置dns 智能dns设置方法 【图文】
  11. 深入学习软件测试:混合正交表工具
  12. 单片机怎么通过按键控制计时器的开始和停止_单片机新手入门系列视频集锦
  13. GY-53红外激光测距模块的使用以及pwm模式代码的实现
  14. 51nod 范德蒙矩阵
  15. 标签打印软件如何输出双面打印的文档
  16. java根据word书签模板填充数据生成pdf输出
  17. 激光雷达简介及物体检测(一)
  18. 和金融男谈恋爱 vs 和程序员谈恋爱
  19. npack v1.1.300 beta by NEOx/[uinc]
  20. [破解]天草初级笔记

热门文章

  1. 验证ArrayList是线程不安全的集合
  2. 第24讲 | 比特币专题(一)历史与货币
  3. 批着DDD,实则是以数据库为中心------数据库已死
  4. .net中的IO体系介绍
  5. zabbix-agent 启动不起来
  6. 标准化是RFID发展的必由之路
  7. 百科知识 .tar.xz文件如何打开
  8. nutz微信应用开发项目 nuby
  9. 《http权威指南》读书笔记 二
  10. Hermite插值是牛顿插值的极限情形