支持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的更多相关文章

  1. Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) JAVA日志的前世今生 .NET MVC采用SignalR更新在线用户数 C#多线程编程系列(五)- 使用任务并行库 C#多线程编程系列(三)- 线程同步 C#多线程编程系列(二)- 线程基础 C#多线程编程系列(一)- 简介

    Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 ...

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

    Python GUI with Tkinter - 1 - Introduction以上链接是一个python tkinter视频系列的第一讲的链接.虽然英语不好,但是,程序还是看得懂的(照着做就可以 ...

  3. Python GUI编程(Tkinter) windows界面开发

    Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py 1 #!C:\Python27\python.e ...

  4. Python GUI工具Tkinter以及拖拉工具Page安装

    如果使用Tkinter作为Python GUI工具,我们需要安装Tkinter,这个使用conda或者pip即可: conda install -c anaconda tk 为了提高界面编写效率,可以 ...

  5. Python -- Gui编程 -- Tkinter的使用 -- 基本控件

    1.按钮 tkBtton.py import tkinter root = tkinter.Tk() btn1 = tkinter.Button(root, anchor=tkinter.E,\ te ...

  6. python GUI 之 tkinter

    写一个 登陆窗口来学习 tkinter ,还剩下一些问题 代码暂时如下 import tkinter as tk import webbrowser import pickle from tkinte ...

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

    相关内容: tkinter的使用 1.模块的导入 2.使用 3.控件介绍 Tk Button Label Frame Toplevel Menu Menubutton Canvas Entry Mes ...

  8. Python:GUI之tkinter学习笔记之messagebox、filedialog

    相关内容: messagebox 介绍 使用 filedialog 介绍 使用 首发时间:2018-03-04 22:18 messagebox: 介绍:messagebox是tkinter中的消息框 ...

  9. Python:GUI之tkinter学习笔记3事件绑定

    相关内容: command bind protocol 首发时间:2018-03-04 19:26 command: command是控件中的一个参数,如果使得command=函数,那么点击控件的时候 ...

随机推荐

  1. JavaScript开发规范

    作为一名开发人员(WEB前端JavaScript开发),不规范的开发不仅使日后代码维护变的困难,同时也不利于团队的合作,通常还会带来代码安全以 及执行效率上的问题.本人在开发工作中就曾与不按规范来开发 ...

  2. sql server中主键列的插入问题

    仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'dbo.t_test'中的标识列指定显式值. SET IDENTITY_INSERT dbo.t_test ON ,'c' ...

  3. [XMPP]iOS聊天软件学习笔记[三]

    今天做了好友界面,其实xmpp内部已经写好很多扩展模块,所以使用起来还是很方便的 开发时间:五天(工作时间) 开发工具:xcode6 开发平台:iOS8 XMPP框架:XMPPFramework gi ...

  4. [XMPP]iOS聊天软件学习笔记[一]

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  5. C语言--关键字 typedef

    一.typedef 1.基本使用 1> typedef 在基本数据类型中的使用 typedef int MyInt; // 相当于给 int 起了一个别名 typedef MyInt MyInt ...

  6. linux下源码安装apache服务

    1.搭建静态网站是,我们只需要搭建apache服务即可满足要求. 例如:如果我再客户端游览器输入地址,他会找到192.168.1.100这个服务器,然后根据端口会找到apache服务器.apache他 ...

  7. TD数量不确定时如何让其宽度平均分布

    D数量不确定时如何让其宽度平均分布?答案很简单,我们只要在table里面加上一下代码就可以实现. table { width: 100%; table-layout: fixed; }

  8. 懒猫们终究要付出代码(本领是一生的),鲸鱼们的短视(逐小利而暴死)——这么说我应该只去互联网公司:IM,云存储,邮箱(别的一概不考虑)

    摘自周鸿伟的书,好像:

  9. 关于ViewPager被嵌套在ScrollView中不显示的问题

    关于ViewPager被嵌套在ScrollView中不显示的问题 进入全屏 ScrollView 嵌套ViewPager,要不是业务需求这样,估计没人愿意这么干!因为这种方式,会问题多多,简单百度一下 ...

  10. Liferay门户网站portal

    转自:http://www.oschina.net/p/liferay+portal Liferay 是一个完整的门户解决方案,基于J2EE的应用,使用了EJB以及JMS等技术,前台界面部分使用Str ...