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__ = ''
__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__ = ''
__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__ = ''
__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__ = ''
__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__ = ''
__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__ = ''
__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__ = ''
__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()
运行结果:
通用控件属性参考
python GUI学习——Tkinter的更多相关文章
- Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) JAVA日志的前世今生 .NET MVC采用SignalR更新在线用户数 C#多线程编程系列(五)- 使用任务并行库 C#多线程编程系列(三)- 线程同步 C#多线程编程系列(二)- 线程基础 C#多线程编程系列(一)- 简介
Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 ...
- Python GUI with Tkinter (from youtube) 在youtube上能找到很多编程视频...
Python GUI with Tkinter - 1 - Introduction以上链接是一个python tkinter视频系列的第一讲的链接.虽然英语不好,但是,程序还是看得懂的(照着做就可以 ...
- Python GUI编程(Tkinter) windows界面开发
Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py 1 #!C:\Python27\python.e ...
- Python GUI工具Tkinter以及拖拉工具Page安装
如果使用Tkinter作为Python GUI工具,我们需要安装Tkinter,这个使用conda或者pip即可: conda install -c anaconda tk 为了提高界面编写效率,可以 ...
- Python -- Gui编程 -- Tkinter的使用 -- 基本控件
1.按钮 tkBtton.py import tkinter root = tkinter.Tk() btn1 = tkinter.Button(root, anchor=tkinter.E,\ te ...
- python GUI 之 tkinter
写一个 登陆窗口来学习 tkinter ,还剩下一些问题 代码暂时如下 import tkinter as tk import webbrowser import pickle from tkinte ...
- Python:GUI之tkinter学习笔记1控件的介绍及使用
相关内容: tkinter的使用 1.模块的导入 2.使用 3.控件介绍 Tk Button Label Frame Toplevel Menu Menubutton Canvas Entry Mes ...
- Python:GUI之tkinter学习笔记之messagebox、filedialog
相关内容: messagebox 介绍 使用 filedialog 介绍 使用 首发时间:2018-03-04 22:18 messagebox: 介绍:messagebox是tkinter中的消息框 ...
- Python:GUI之tkinter学习笔记3事件绑定
相关内容: command bind protocol 首发时间:2018-03-04 19:26 command: command是控件中的一个参数,如果使得command=函数,那么点击控件的时候 ...
随机推荐
- Expedition(优先队列)
Expedition 点我 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9465 Accepted: 2760 Des ...
- POJ 1020 Anniversary Cake(DFS)
Anniversary Cake Time Limit: 1000MSMemory Limit: 10000KB64bit IO Format: %I64d & %I64u Submit St ...
- bzoj1689 [Usaco2005 Open] Muddy roads 泥泞的路
Description Farmer John has a problem: the dirt road from his farm to town has suffered in the recen ...
- apache+php+mysql常见集成环境安装包
http://www.thinksaas.cn/group/topic/33/ apache+php+mysql是常见php环境,在windows下也称为WAMP,对于初学者自选版本搭建总是会遇到一些 ...
- Isomorphic Strings 解答
Question Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if ...
- LeeCode-Number of 1 Bits
Write a function that takes an unsigned integer and returns the number of ’1' bits it has For exampl ...
- 【LeetCode练习题】Reverse Words in a String
Reverse Words in a String Given an input string, reverse the string word by word. For example,Given ...
- telnet查看memcached运行参数说明
在Linux/Windows系统中启动memcached的命令请查看http://weilingfeng98.iteye.com/admin/blogs/1741179 启动完memcached服务器 ...
- IsDbNull 方法的用法
本文来自:http://lazhgg.cnblogs.com/archive/2006/02/21/334915.html 在c#中,进行数据库查询时使用IsDbNull 方法判断数据库中字段值是否存 ...
- 单调队列-hdu-3415-Max Sum of Max-K-sub-sequence
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3415 题目大意: 给n个数凑成环状,求某一区间,使得该区间长度不超过k,且总和最大. 解题思路: 区 ...