python之图形界面GUI开发 Tkinter 2014-4-7
1.导入Tkinter 可以使用以下三种方法
(1)from Tkinter import *
#导入Tkinter
(2)import Tkinter
Tkinter.methodA
使用 Tkinter.methodA这样就不会污染其他命名空间
(3)import Tkinter as Tk
Tk.methodA
重新定义了一个Tk 使用 Tk.methodA这样也就不会污染其他命名空间
作为GUI需要考虑3个问题
屏幕上显示什么样的界面
图形怎么编排坐标
如何人机交互(事件绑定)
from Tkinter import *
root=Tk()
mylabel=Label(root,text="I am a label widget")
mybutton=Button(root,text="I am a button")
mylabel.pack()
mybutton.pack()
root.mainloop()
mylabel=Label(root,text="I am a label widget")
mylabel.pack()
等同于Label(root,text="I am a label widget").pack()
如果其他地方不需要调用或者修改 就不用赋值给变量(mylabel)
Tkinter核心组件
部件 描述
Button 一个简单的按钮,用于执行命令或其他操作。
Canvas 结构化图形,该部件可用于绘制图形或图表、创建图形编辑器以及实现定制部件。
Checkbutton 代表一个可拥有两个不同值的变量,点击按钮可以在两个值之间进行切换。
Entry 一个文本输入框。
Frame 一个容器部件。该框架可以拥有一个边框和背景,当创建一个程序的程序或对话布局时可用于集合其他部件
Label 显示一个文本或图像。
Listbox 显示一个替换列表。该列表框可被设置为接收单选框或清单行为。
Menu 一个菜单面板。用于实现下拉和弹出菜单项。
Menubutton 一个菜单按钮。用于实现下拉菜单项。
Message 显示一个文本。类似于标签部件,但可以将文本自动绑定为给定的宽度或宽高比。
Radiobutton 代表可拥有多个值的变量的一个值。点击按钮可使变量获取该值并同时清除所有与该变量相关的复选框按钮
Scale 允许你通过拖拽"滑块"来设置数值
Scrollbar 用于画板、输入框、列表框和文本部件的标准滚动条
Text 格式化文本显示。允许你使用各种样式和属性显示或编辑文本。同时还支持嵌入图像或窗口。
Toplevel 作为一个分割的顶层窗口显示的容器部件
调用核心组件
组件名(父窗口,参数)
from Tkinter import *
root=Tk()
#Label(root, text=" Enter your Password:").pack()
#Button(root, text="Search").pack()
#Checkbutton(root, text='RememberMe',variable='v', value=True).pack()
#Entry(root, width=30).pack()
Frame(root,width=500,height=200).pack()
root.mainloop()
图形布局有三种方法
pack()简单布局
grid()常用 类似于表格布局 网格布局
place() 最不常用 但是可以用于绝对定位
pack():
from Tkinter import *
root = Tk()
Button(root, text="A").pack(side=LEFT, expand=YES, fill=Y)
Button(root, text="B").pack(side=TOP, expand=YES, fill=BOTH)
Button(root, text="C").pack(side=RIGHT, expand=YES, fill=NONE, anchor=NE)
Button(root, text="D").pack(side=LEFT, expand=NO, fill=Y)
Button(root, text="E").pack(side=TOP, expand=NO, fill=BOTH)
Button(root, text="F").pack(side=RIGHT, expand=NO, fill=NONE)
Button(root, text="G").pack(side=BOTTOM, expand=YES, fill=Y)
Button(root, text="H").pack(side=TOP, expand=NO, fill=BOTH)
Button(root, text="I").pack(side=RIGHT, expand=NO)
Button(root, text="J").pack(anchor=SE)
root.mainloop()
side=TOP, anchor=SE
side='top', anchor='se'
大写 或者小写加引号等价的
pack()使用情况:
需要填满 或者 挨个排列布局的话会用到

grid()最常用
以下代码建立一个登陆框
username:
password:
login
from Tkinter import *
root = Tk()
Label(root, text="Username").grid(row=0, sticky=W)
Label(root, text="Password").grid(row=1, sticky=W)
Entry(root).grid(row=0, column=1, sticky=E)
Entry(root).grid(row=1, column=1, sticky=E)
Button(root, text="Login").grid(row=2, column=1, sticky=E)
root.mainloop()
#sticky=W表示 从西边开始排列(左手边)
#column 表示从左到右排列
#row从上到下排序 如无排列则为空 依然紧挨着(column=1,另外一个column为3 则为3的会紧挨着为1的 因为没有2)

#一个搜索框代码
from Tkinter import *
top = Tk()
top.title('Find & Replace')
Label(top,text="Find:").grid(row=0, column=0, sticky='e')
Entry(top).grid(row=0,column=1,padx=2,pady=2,sticky='we',columnspan=9)
Label(top, text="Replace:").grid(row=1, column=0, sticky='e')
Entry(top).grid(row=1,column=1,padx=2,pady=2,sticky='we',columnspan=9)
Button(top,text="Find").grid(row=0,column=10,sticky='ew',padx=2,pady=2)
Button(top,text="Find All").grid(row=1,column=10,sticky='ew',padx=2)
Button(top,text="Replace").grid(row=2,column=10,sticky='ew',padx=2)
Button(top,text="Replace All").grid(row=3,column=10,sticky='ew',padx=2)
Checkbutton(top,text='Match Whole word only').grid(row=2,column=1,columnspan=4,sticky='w')
Checkbutton(top,text='Match Case').grid(row=3,column=1,columnspan=4,sticky='w')
Checkbutton(top,text='Wrap around').grid(row=4,column=1,columnspan=4,sticky='w')
Label(top,text="Direction:").grid(row=2,column=6,sticky='w')
Radiobutton(top,text='Up',value=1).grid(row=3,column=6,columnspan=6,sticky='w')
Radiobutton(top,text='Down',value=2).grid(row=3,column=7,columnspan=2,sticky='w')
top.mainloop()

python之图形界面GUI开发 Tkinter 2014-4-7的更多相关文章
- python简单图形界面GUI入门——easygui【转】
原文:https://blog.csdn.net/mingqi1996/article/details/81272621 感觉gui做起来成就感比较高,学完基础语言顺便花一个下午看看GUI设计,现在回 ...
- 第十五章 使用PyQt进行Python图形界面程序开发
在基础知识部分的最后一章<第十三章 Python基础篇结束章>的<第13.3节 图形界面开发tkinter>简单介绍了Python内置图形界面标准库tkinter,当时特别强调 ...
- php 图形用户界面GUI 开发
php 图形用户界面GUI 开发 一.下载指定系统扩展 1 2 http://pecl.php.net/package/ui http://pecl.php.net/package/ui/2.0.0/ ...
- AWT提供了Java Applet 和Java Application中可用的用户图形界面 GUI 中的基本组件
AWT提供了Java Applet 和Java Application中可用的用户图形界面 GUI 中的基本组件( component s). 由于Java是一种独立于平台的 程序设计语言 ,但GUI ...
- Java图形界面GUI
Java图形界面GUI 设置窗体JFrame对象 package com.Aha.Best; import javax.swing.ImageIcon; import javax.swing.JFra ...
- Go 在 Windows 上用户图形界面 GUI 解决方案 Go-WinGUI 国产(使用cef 内核)
Go 在 Windows 上用户图形界面 GUI 解决方案 Go-WinGUI 国产 Go 在服务端的优势不容置疑,但是在桌面应用上却没有好的 GUI 支持,本项目是 Go 语言在 Windows 上 ...
- python桌面端开发手记(序列化、压缩包、加密、图形界面GUI)
0x00 前段时间接到一个小项目是给某行业内部开发离线桌面端,业务流实现上总体分信息录入.加密导出.因为是win桌面端,所以老板说依托Access用VBA做,我据理力争了一下.之前就是用Acces ...
- 使用PyQt进行Python图形界面程序开发文章目录
☞ ░ 前往老猿Python博文目录 ░ PyQt入门知识原来是作为老猿Python<Python基础教程目录>后的进阶学习章节存在,最近不少专栏作者提醒老猿整体的博文内容不错,但博文没有 ...
- python大法好——ython GUI编程(Tkinter)
Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...
随机推荐
- python实现选择排序
list_1 = [] #先建一个空链表 print('输入排序个数:') n = int(input()) #接收输入个数 for i in range(n): a = input() list_1 ...
- AIX系统常用命令
netstat -an | grep 9090 可以看到该端口正被监听,但却不知道是哪个进程占用了该端口 1. netstat -Aan|grep 端口号找到该端口连接对应的PCB/ADDR和连接的 ...
- php输出中文字符
中文字符不可以使用imagettftext()函数在图片中直接输出,如果要输出中文字符,需要先使用iconv()函数对中文字符进行编码,语法格式如下:string iconv ( string $in ...
- 129 Sum Root to Leaf Numbers 求根叶数字总和
给定一个只包含 0-9 数字的二叉树,每个根到叶的路径可以代表一个数字.例如,从根到叶路径 1->2->3则代表数字 123.查找所有根到叶数字的总和.例如, 1 / \ 2 ...
- RHEL 7.2 源码安装Python 3.6.2报错
报错代码:zipimport.ZipImportError: can't decompress data; zlib not available 一条命令解决:yum install zlib-dev ...
- Apache Kylin Cube 的构建过程
不多说,直接上干货! 1. Cube的物理模型 Cube物理模型 如上图所示,一个常用的3维立方体,包含:时间.地点.产品.假如data cell 中存放的是产量,则我们可以根据时间.地点.产品来确定 ...
- AJPFX总结private关键字
private关键字 什么是private关键字? 它是一个修饰符,代表私有的意思,它可以修饰成员变量和成员方法 private关键字的特点? ...
- sql查询作业执行时间
SELECT j.name AS Job_Name , h.step_id AS S ...
- Cognos报表验证(添加字段)
1.打开后台Cognos 链接远程后台Cognos 2.打开要验证的报表 3.给右边的sql语句加个空格或者换行点击验证 4.查看业务视图中是否已经添加该字段 双击维度或者度量(添加字段所在的分类) ...
- core mvc 分页
看了下XPAGE感觉还是用的不太爽,自己写了个,样式是bootstrap的,需要的小伙伴拿走吧. public static IHtmlContent Pager(this IHtmlHelper h ...