python——Tkinter的简单学习

原创 2015年11月18日 10:18:29

Python提供了开发图形用户界面(GUI)的各种方案。下面列出最重要如下:


Tkinter: Tkinter的是Tk的GUI工具包,与Python附带的Python接口。
wxPython: 这是一个开源的Python接口的wxWindows http://wxpython.org.
JPython: JPython的是一个用于Java的Python端口,

这使得Python脚本在本地机器上的无缝接入到Java类库http://www.jython.org.


Tkinter最大的特点是跨平台,缺点是性能不太好,执行速度慢。
还有许多没有列出其他接口。您可以通过网络找到它们.
===========================================================
使用Tkinter创建一个GUI应用程序是一件容易的事。所有你需要做的是执行以下步骤:
导入Tkinter模块.
创建GUI应用程序的主窗口.
添加上述部件之一或更多的GUI应用程序.
进入主事件循环的由用户触发每个事件响应
=========================================================
由于版本的问题,有的时候,你要在本地安装python-Tk
sudo apt-get install python-Tk
=======================================================
下面以一个例子说明
#!/usr/bin/python

import Tkinter
top = Tkinter.Tk()
#此处添加各种组件
top.mainloop()
===========================================================

创建这样一个窗口


====================================================
Tkinter的部件
Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为部件.
目前有15种Tkinter的部件,例如Button,Lable

一些控件的用法可以参考一些前辈的,http://www.cnblogs.com/kaituorensheng/p/3287652.html#_label2
===========================================================
标准属性
例如Colors,Fonts
=========================================================
几何管理
Tkinter的部件有特定几何形状的管理方法,整个小部件父控件区域组织的目的。 Tkinter的公开以下几何经理类:包装,网格,位置.


pack() 方法-:这个的几何管理器组织之前,将其放置在他们的父widget块部件.
Pack使用很简单,就是w.pack(option)。常用的option有:
Side 表示把组件放到哪一边,TOP(上),BOTTOM(下),LEFT,RIGHT
Padx和pady  表示parcel的每一个边和组件的预留空间。
Ipadx和ipady,表示组件的每一个边和他包含的内容之间的预留空间。
Anchor表示在parcel放置组件的方式,缺省时CENTER。
grid()方法 - 这的几何管理器组织表状结构中的小部件的父部件.
place()方法 - 这个的几何管理器组织放置在一个特定的位置,在他们的父widget部件.


=========================================================================
小例子:
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()


===========================================================
结果截图:




============================================================
小例子二:
小小计算器,源代码如下:
=======================================================
#/usr/bin/python
# coding: utf-8


# 引入Tkinter库
from Tkinter import *


# 操作事件绑定的函数,这些函数中都会对显示的内容进行更新,因此显示内容display作为全局变量


# 更新显示内容函数,由按钮事件触发,将按钮内容添加到已显示内容后
def updateDisplay(buttonString):
    content = display.get()
    if content == "0":
        content = ""
    display.set(content + buttonString)


# 计算表达式的结果,表达式即为显示的内容,并将结果显示出来(需要换行并添加等于号)
def calculate():
    result = eval(display.get())
    display.set(display.get() + '=\n' + str(result))


# 清空操作,由清空按钮事件触发
def clear():
    display.set('0')


# 删除操作,由删除按钮事件触发,删除前一个字符
def backspace():
    display.set(str(display.get()[:-1]))


# 定义主窗口,设置窗口名称和大小200×320,并设置屏幕坐标为(300,300)
mainUI = Tk()
mainUI.title('Calculator')
mainUI.geometry('200x210+300+300')


# 设置显示内容,默认显示0
# 这里使用StringVar属于Tkinter库,在界面编程的时候,有时需要跟踪变量值的变化,
# 以保证值的变更随时可以显示在界面上。python无法直接做到,所以定义了一系列新的的对象,
# 例如StringVar、BooleanVar、DoubleVar、IntVar。
display = StringVar()
display.set('0')


# 添加计算器显示区域,使用Label,并设置背景色及大小
textLabel = Label(mainUI)
# 这里需要注意width宽度的单位,如果你在Label中显示文本,
# 那么这些选项将以文本的单位为定义按钮的尺寸。
# 如果你替而代之显示图象,那么按钮的尺寸将是像素(或其它的屏幕单位)。
textLabel.config(bg='grey', width=28, height=3, anchor = SE)
textLabel['textvariable'] = display


# 设置显示区域在Grid布局中的位置
textLabel.grid(row=0, column=0, columnspan=4)


# 添加按钮并放置到适当的区域
# 清空按钮,其中text为按钮上的文字,fg为按钮的字体颜色(bg为文字背景的按钮颜色),width为按钮宽度
# command参数为按钮事件绑定函数,绑定到clear()函数,按钮按下时触发
clearButton = Button(mainUI, text = 'C', fg = 'orange', width = 3, command = clear)
# 设置清空按钮的位置,行号为1,列号为0,即第二行第一列
clearButton.grid(row = 1, column = 0)


# 其他按钮位置,由于与清空按钮类似不再注释,请自行查看Grid中的位置,有的按钮采用lambda来生成匿名函数,原因是需要处理传入的参数
Button(mainUI, text = 'DEL', width = 3, command = backspace).grid(row = 1, column = 1)
Button(mainUI, text = '/', width = 3, command = lambda:updateDisplay('/')).grid(row = 1, column = 2)
Button(mainUI, text = '*', width = 3, command = lambda:updateDisplay('*')).grid(row = 1, column = 3)
Button(mainUI, text = '7', width = 3, command = lambda:updateDisplay('7')).grid(row = 2, column = 0)
Button(mainUI, text = '8', width = 3, command = lambda:updateDisplay('8')).grid(row = 2, column = 1)
Button(mainUI, text = '9', width = 3, command = lambda:updateDisplay('9')).grid(row = 2, column = 2)
Button(mainUI, text = '-', width = 3, command = lambda:updateDisplay('-')).grid(row = 2, column = 3)
Button(mainUI, text = '4', width = 3, command = lambda:updateDisplay('4')).grid(row = 3, column = 0)
Button(mainUI, text = '5', width = 3, command = lambda:updateDisplay('5')).grid(row = 3, column = 1)
Button(mainUI, text = '6', width = 3, command = lambda:updateDisplay('6')).grid(row = 3, column = 2)
Button(mainUI, text = '+', width = 3, command = lambda:updateDisplay('+')).grid(row = 3, column = 3)
Button(mainUI, text = '1', width = 3, command = lambda:updateDisplay('1')).grid(row = 4, column = 0)
Button(mainUI, text = '2', width = 3, command = lambda:updateDisplay('2')).grid(row = 4, column = 1)
Button(mainUI, text = '3', width = 3, command = lambda:updateDisplay('3')).grid(row = 4, column = 2)
Button(mainUI, text = '=', width = 3, bg = 'orange', height = 3,command = lambda:calculate()).grid(row = 4, column = 3, rowspan = 2)
Button(mainUI, text = '0', width = 10, command = lambda:updateDisplay('0')).grid(row = 5, column = 0, columnspan = 2)
Button(mainUI, text = '.', width = 3, command = lambda:updateDisplay('.')).grid(row = 5, column = 2)


# 进入主循环
mainUI.mainloop()


=================================================================
结果如图:


=================================================================


以上就是简要的一个对于Tkinter的总结。需要学习的还有很多,如果这里有什么需要补充改进或者有错的还希望指正!





Tkinter 控件详细介绍

python 界面编程 Tkinter 15种控件简介   2012-02-21 16:23:47|  分类: python代码 |  标签: |字号大中小 订阅 1.Butt...

python中turtle(海龟)模块的简单用法

在执行turtle模块之前。要确保自己的python中已经安装了Tkinter模块。 turtle模块可以用来学习计算机是如何在屏幕上画图的。 提供了画向量图的方法 #!/usr/bin/python...

Python绘图Turtle库详解

Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行...

python学习笔记——Tkinter GUI编程——简介

一,Tkinter介绍 Tkinter是一个python模块,是一个调用Tcl/Tk的接口,它是一个跨平台的脚本图形界面接口。Tkinter不是唯一的python图形编程接口,但是是其中比较流行...
  • fcl1231
  • fcl1231
  • 2014年10月21日 09:18
  • 408

python tkinter实现简单计算器

功能分析基础功能 需要有显示区,可以使用label,text,entry 显示按键0-9以及运算符 鼠标点击按键时,按键的值或者运算结果能够在显示区显示 能够清空显示区以备下一次运算输入 功能完善和增...

python GUI编程(Tkinter)简单使用

在界面中很重要的是布局,一开始在查找的的时候网上有很多都是下面这样: # -*- coding: utf-8 -*- from Tkinter import * root = Tk() # 设置...

(python)GUI简单的tkinter小应用

书上的小例题运行结果效果图 源码分享import tkinter import tkinter.messagebox import tkinter.ttk listboxStudents=[]roo...

python中Tkinter模块的简单应用

用turtle(海龟)画图面临的问题就是太慢,即便是以最大的速度也还是太慢了,下面介绍一下Tkinter模块。注意:Tkinter模块在python2中和python3中还是有很大的区别,这里以pyt...

python通过Tkinter库实现的一个简单的文本编辑器代码

python通过Tkinter库实现的一个简单的文本编辑器代码 ## {{{ http://code.activestate.com/recipes/578568/ (r...

Python3下用tkinter和PIL实现简单的看图工具

需求想做看图工具的,必然要支持jpg、png等常见格式,但tkinter是个纯粹的GUI库,不像GTK、QT那样大而全,所以只支持gif和ppm两种格式,局限很大,必须搭配图像处理库,才能实现基本的看...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python——Tkinter的简单学习
举报原因:
原因补充:

(最多只允许输入30个字)