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

  1. python简单图形界面GUI入门——easygui【转】

    原文:https://blog.csdn.net/mingqi1996/article/details/81272621 感觉gui做起来成就感比较高,学完基础语言顺便花一个下午看看GUI设计,现在回 ...

  2. 第十五章 使用PyQt进行Python图形界面程序开发

    在基础知识部分的最后一章<第十三章 Python基础篇结束章>的<第13.3节 图形界面开发tkinter>简单介绍了Python内置图形界面标准库tkinter,当时特别强调 ...

  3. php 图形用户界面GUI 开发

    php 图形用户界面GUI 开发 一.下载指定系统扩展 1 2 http://pecl.php.net/package/ui http://pecl.php.net/package/ui/2.0.0/ ...

  4. AWT提供了Java Applet 和Java Application中可用的用户图形界面 GUI 中的基本组件

    AWT提供了Java Applet 和Java Application中可用的用户图形界面 GUI 中的基本组件( component s). 由于Java是一种独立于平台的 程序设计语言 ,但GUI ...

  5. Java图形界面GUI

    Java图形界面GUI 设置窗体JFrame对象 package com.Aha.Best; import javax.swing.ImageIcon; import javax.swing.JFra ...

  6. Go 在 Windows 上用户图形界面 GUI 解决方案 Go-WinGUI 国产(使用cef 内核)

    Go 在 Windows 上用户图形界面 GUI 解决方案 Go-WinGUI 国产 Go 在服务端的优势不容置疑,但是在桌面应用上却没有好的 GUI 支持,本项目是 Go 语言在 Windows 上 ...

  7. python桌面端开发手记(序列化、压缩包、加密、图形界面GUI)

    0x00   前段时间接到一个小项目是给某行业内部开发离线桌面端,业务流实现上总体分信息录入.加密导出.因为是win桌面端,所以老板说依托Access用VBA做,我据理力争了一下.之前就是用Acces ...

  8. 使用PyQt进行Python图形界面程序开发文章目录

    ☞ ░ 前往老猿Python博文目录 ░ PyQt入门知识原来是作为老猿Python<Python基础教程目录>后的进阶学习章节存在,最近不少专栏作者提醒老猿整体的博文内容不错,但博文没有 ...

  9. python大法好——ython GUI编程(Tkinter)

    Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...

随机推荐

  1. LPS UVA 11404 Palindromic Subsequence

    题目传送门 题意:求LPS (Longest Palidromic Subsequence) 最长回文子序列.和回文串不同,子序列是可以不连续的. 分析:1. 推荐->还有一种写法是用了LCS的 ...

  2. 牛客练习赛25-A-因数个数和

    题目描述 q次询问,每次给一个x,问1到x的因数个数的和. 输入描述: 第一行一个正整数q:接下来q行,每行一个正整数x 输出描述: 共q行,每行一个正整数表示答案 输入 4 1 2 3 10 输出 ...

  3. 【转】Android官方架构项目之MVP + Clean

    首先,不了解 Clean 架构的可以看看这个,不过也没关系,阅读本文后你也许会对Clean架构思想有一个认识. 对比MVP项目的结构图,我们发现不同之处是新增的这个Domain Layer这层,来隔离 ...

  4. 04.Java多线程并发库API使用3

    1.java5的Semaphere同步工具 Semaphore可以维护当前访问自身的线程个数,并提供了同步机制.使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数 ...

  5. java写跳一跳辅助程序

    ##起初是想使用按键精灵脚本程序控制,但还是选择熟悉的java.我这里使用了工具,造成延迟问题.也求教:java控制安卓的正确姿势, 参考了.NET玩跳一跳,思路都是一样的,只不过使用ADB控制安卓的 ...

  6. APP设计细节总结-摘录

    视觉表现型问题 1. 统一的图标设计风格 2. 图标大小的视觉平衡(根据图标的体量对其大小做出相应的调整) 3. 优化你的分割线(通常我们会选择浅色而否定深色) 4. 合理的运用投影的颜色与透明度 5 ...

  7. Android(java)学习笔记180:多媒体之图形的变化处理

    1. 图形的缩放 (1)布局文件activity_main.xml如下: <LinearLayout xmlns:android="http://schemas.android.com ...

  8. uva10163 Storage Keepers

    习题9-9 注意前提是最小值最大.很少做两次dp的题. 初始化要细心. #include<iostream> #include<cmath> #include<algor ...

  9. Js 之获取QueryString的几种方法

    一.正则匹配 function getQueryString(name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(& ...

  10. QT_3

    1.QT中命名的规范和常用的快捷键 1.1 命名规范: 类名:首字母大写    多个单词时单词与单词之间首 字母大写 函数名:变量名称   首字母小写    多个单词时,单词和单词之间首字母大写 1. ...