python GUI学习——Tkinter

支持python的常见GUI工具包:

Tkinter         使用Tk平台 很容易得到 半标准                       wxpython        基于wxWindows。跨平台越来越流行                    Python Win      只能在Windows上使用 使用了本机的Windows GUI功能    Java Swing      只能用于Jython 使用本机的Java GUI                  PyGTK           使用GTK平台 在linux上很流行                        PyQt            使用QT平台 跨平台         

Tkinter学习

介绍以下几个控件的用法

    Label    Frame    Entry    Text    Button    Listbox    Scrollbar

说明每个控件最后要加上pack().否则控件是无法显示的

1.Label说明:标签用法:Label(根对象,【属性列表】)属性:text    要显示的文本bg      背景颜色bd      外围3D边界的宽度font    字体(颜色、大小)width   控件宽度height  控件高度实例:
#-*- coding: UTF-8 -*-
__author__ = ‘007‘
__date__ = ‘2016/4/7‘

from Tkinter import *
root = Tk() # 初始化Tk()
root.title("label-test")    # 设置窗口标题
root.geometry("200x300")    # 设置窗口大小 注意:是x 不是*
root.resizable(width=True, height=False) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为True
l = Label(root, text="label", bg="pink", font=("Arial",12), width=8, height=3)
l.pack(side=LEFT)   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOM
root.mainloop() # 进入消息循环

运行结果:

2.Frame说明:在屏幕上创建一块矩形区域,多作为容器来布局窗体用法:frame(根对象,【属性列表】)实例:
#-*- coding: UTF-8 -*-
__author__ = ‘007‘
__date__ = ‘2016/4/7‘

from Tkinter import *
root = Tk() # 初始化Tk()
root.title("frame-test")    # 设置窗口标题
root.geometry("300x200")    # 设置窗口大小 注意:是x 不是*
root.resizable(width=True, height=False) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为True
Label(root, text="frame", bg="red", font=("Arial",15)).pack()
frm = Frame(root)
#left
frm_L = Frame(frm)
Label(frm_L, text="左上", bg="pink", font=("Arial",12)).pack(side=TOP)
Label(frm_L, text="左下", bg="green", font=("Arial",12)).pack(side=TOP)
frm_L.pack(side=LEFT)
#right
frm_R = Frame(frm)
Label(frm_R, text="右上", bg="yellow", font=("Arial",12)).pack(side=TOP)
Label(frm_R, text="右下", bg="purple", font=("Arial",12)).pack(side=TOP)
frm_R.pack(side=RIGHT)
frm.pack()   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOM
root.mainloop() # 进入消息循环

运行结果:

3.Entry说明:创建单行文本框用法:创建 Entry(根对象,【属性列表】)     绑定变量 var=StringVar()    e=Entry(根对象, textvariable = var)    获取文本框中的值   var.get()    设置文本框中的值   var.set(item1)实例:
#-*- coding: UTF-8 -*-
__author__ = ‘007‘
__date__ = ‘2016/4/7‘

from Tkinter import *
root = Tk() # 初始化Tk()
root.title("entry-test")    # 设置窗口标题
root.geometry("300x200")    # 设置窗口大小 注意:是x 不是*
root.resizable(width=True, height=False) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为True
var = Variable()
e = Entry(root, textvariable=var)
var.set("entry") # 设置文本框中的值
e.pack()   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOM
root.mainloop() # 进入消息循环

运行结果:

4.Text说明:向该空间内输入文本用法:t = Text(根对象)插入:t.insert(mark,内容)删除:t.delete(mark1,mark2)其中,mark可以是行号,或者特殊标识,例如 INSERT:光标的插入点CURRENT:鼠标的当前位置所对应的字符位置 END:这个Textbuffer的最后一个字符 SEL_FIRST:选中文本域的第一个字符,如果没有选中区域则会引发异常 SEL_LAST:选中文本域的最后一个字符,如果没有选中区域则会引发异常实例:
#-*- coding: UTF-8 -*-
__author__ = ‘007‘
__date__ = ‘2016/4/7‘

from Tkinter import *
root = Tk() # 初始化Tk()
root.title("text-test")    # 设置窗口标题
root.geometry("300x200")    # 设置窗口大小 注意:是x 不是*
root.resizable(width=True, height=False) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为True
t = Text(root)
t.insert(‘1.0‘,"text1\n")   # 插入
t.insert(END,"text2\n") # END:这个Textbuffer的最后一个字符
t.insert(‘1.0‘,"text3\n")
#t.delete(‘1.0‘,‘2.0‘)   # 删除
t.pack()   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOM
root.mainloop() # 进入消息循环

运行结果:

5.Button说明:创建按钮用法:Button(根对象,【属性列表】)实例:
#-*- coding: UTF-8 -*-
__author__ = ‘007‘
__date__ = ‘2016/4/7‘

from Tkinter import *
root = Tk() # 初始化Tk()
root.title("button-test")    # 设置窗口标题
root.geometry()    # 设置窗口大小 注意:是x 不是*

def printhello():
    t.insert(END,"hello\n")
t = Text()
t.pack()   # 这里的side可以赋值为LEFT  RTGHT TOP  BOTTOM
Button(root, text="press", command=printhello).pack()
root.mainloop() # 进入消息循环

运行结果:

6.Listbox说明:列表控件,可以含有一个或者多个文本框,可单选也可多选用法:创建  lb = ListBox(根对象,【属性列表】)绑定变量 var = StringVar() lb=ListBox(根对象,listvariable=var)得到列表中的所有值 var.get()设置列表中的所有值 var.set((item1,item2,......))添加:lb.insert(item)删除:lb.delete(item,...)绑定事件 lb.bind(‘<ButtonRelease-1>‘,函数)获得所选中的选项 lb.get(lb.curselection())属性:selectmode可以为BROWSE MULTIPL SINGLE实例:
#-*- coding: UTF-8 -*-
__author__ = ‘007‘
__date__ = ‘2016/4/7‘

from Tkinter import *
root = Tk()
root.title("listbox-test")
root.geometry()
def print_item(event):
    print lb.get(lb.curselection())
var = StringVar()
lb = Listbox(root, listvariable = var)
list_item = [1,2,3,4]
for item in list_item:
    lb.insert(END,item)
lb.delete(2,4)
var.set((‘a‘,‘b‘,‘c‘,‘d‘))
print var.get()
lb.bind(‘<ButtonRelease-1>‘,print_item)
lb.pack()
root.mainloop()

运行结果:

7.Scrollbar说明:垂直滚动控件用法:ListBox(根对象,【属性列表】实例:
#-*- coding: UTF-8 -*-
__author__ = ‘007‘
__date__ = ‘2016/4/7‘

from Tkinter import *
root = Tk() # 初始化Tk()
root.title("scrl-test")    # 设置窗口标题
root.geometry()    # 设置窗口大小 注意:是x 不是*
def print_item(event):
    print lb.get(lb.curselection())
var = StringVar()
lb = Listbox(root, height=5, selectmode=BROWSE, listvariable = var)
lb.bind(‘<ButtonRelease-1>‘,print_item)
list_item = [1,2,3,4,5,6,7,8,9,0]
for item in list_item:
    lb.insert(END,item)
scrl = Scrollbar(root)
scrl.pack(side=RIGHT,fill=Y)
lb.configure(yscrollcommand=scrl.set)   # 指定Listbox的yscrollbar的回调函数为Scrollbar的set,表示滚动条在窗口变化时实时更新
lb.pack(side=LEFT,fill=BOTH)
scrl[‘command‘] = lb.yview  # 指定Scrollbar的command的回调函数是Listbar的yview
root.mainloop()

运行结果:

通用控件属性参考
时间: 2024-11-05 00:12:35

python GUI学习——Tkinter的相关文章

Python GUI with Tkinter (from youtube) 在youtube上能找到很多编程视频...

Python GUI with Tkinter - 1 - Introduction以上链接是一个python tkinter视频系列的第一讲的链接.虽然英语不好,但是,程序还是看得懂的(照着做就可以了),所以找不到中文视频时看下这些英语视频也是可以的. 以下是我在看视频过程中的练习, 可以在python2.7下运行. 001: hello,world: from Tkinter import Label, Tk root = Tk() thelabel = Label(root, text="

python GUI编程(Tkinter)

python GUI编程(Tkinter) python提供了多个图形开发界面的库,几个常用Python GUI库如下: Tkinter: Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.,Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中. wxPython:wxPython 是一款开源软件,是 Python 语言的一套优

Python GUI programming(tkinter)

python3之前的版本用Tkinter,之后用的是tkinter 最简单的使用Tkinter的代码,首先要Tk()建立一个窗口,然后加进各种Widget from Tkinter import * window = Tk() label = Label(window, text = "Welcome to Python") button = Button(window, text = "Click me") label.pack() button.pack() w

Python:GUI之tkinter学习笔记1控件的介绍及使用

相关内容: tkinter的使用 1.模块的导入 2.使用 3.控件介绍 Tk Button Label Frame Toplevel Menu Menubutton Canvas Entry Message Text Listbox Checkbutton Radiobutton Scale Scrollbar 首发时间:2018-03-04 16:39 Python的GUI各有各特点. 由于只是轻微涉及GUI开发,所以就以轻量级的tkinter来学习. tkinter的使用: 1.模块的导入

Python:GUI之tkinter学习笔记2界面布局显示

相关内容: pack 介绍 常用参数 使用情况 常用函数 grid 介绍 常用参数 使用情况 常用函数 place 介绍 常用参数 使用情况 常用函数 首发时间:2018-03-04 14:20 pack: 介绍: pack几何管理器按行或列打包小部件. 可以使用填充fill,展开expand和靠边side等选项来控制此几何体管理器. pack的排放控件的形式就像将一个个控件按大小从上到下放过去 在窗口不设定大小的而使用pack进行布局的情况下,窗口默认大小为刚好包裹所有控件的大小 默认情况下添

python GUI编程tkinter示例之目录树遍历工具

摘录 python核心编程 本节我们将展示一个中级的tkinter应用实例,这个应用是一个目录树遍历工具:它会从当前目录开始,提供一个文件列表,双击列表中任意的其他目录,就会使得工具切换到新目录中,用新目录中的文件列表代替旧文件列表.这里新增了列表框.文本框和滚动条,此外还增加了鼠标单击.键盘按下.滚动操作等回调函数.其实,整个应用就是一系列控件和函数的组合. #python 3.6 import os from time import sleep from tkinter import * #

python gui之tkinter事件处理

事件一览表 事件 代码 备注 鼠标左键单击按下 1/Button-1/ButtonPress-1   鼠标左键单击松开 ButtonRelease-1   鼠标右键单击 3   鼠标左键双击 Double-1/Double-Button-1   鼠标右键双击 Double-3   鼠标滚轮单击 2   鼠标滚轮双击 Double-2   鼠标移动 B1-Motion   鼠标移动到区域 Enter   鼠标离开区域 Leave   获得键盘焦点 FocusIn   失去键盘焦点 FocusOut

python gui之tkinter语法杂记

随手写的,后续整理. 1. Entry如何调用父类的__init__? 以下错,原因后续分析 super(Your_Entry_Class, self).__init__(self,**kw) 报错:TypeError: must be type, not instance . 莫名其妙 谷歌了下,解决方案如下 apply(Entry.__init__, (self, parent), **kw) 2. 如何将ttk treeview 的某一行转入编辑状态 事实上,(python 3)treev

Python GUI编程(Tkinter)Label控件

import tkinter win = tkinter.Tk()win.title("sunck")win.geometry("400x400+200+20") '''Label:标签控件可以显示文本'''#win 父窗体#text 显示的文本内容#bg 背景色#fg 字体颜色#wraplength 指定text文本中多宽进行换行#justify 设置换行后的对齐方法#anchor 位置 n北 e东 s南 w西 center居中 ne se sw nwlabel