打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
pyhon之Tkinter实例化学习

Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口,位Python的内置模块,直接import tkinter即可使用。

作为实践, 用Tkinter做了个ascii码转化查询表

1. 产品介绍

界面

  

功能

  • 通过输入字符或数字查询对应的信息
  • 通过选择列表中的信息查询对应的信息

2. 设计规划

规划图

3. 相关知识

首先看怎么产生第一个窗口

from Tkinter import *   #引用Tk模块root = Tk()             #初始化Tk()root.mainloop()         #进入消息循环

几个常用属性

  • title: 设置窗口标题
  • geometry: 设置窗口大小
  • resizable():设置窗口是否可以变化长 宽
# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry('200x100')                 #是x 不是*root.resizable(width=False, height=True) #宽不可变, 高可变,默认为Trueroot.mainloop()

介绍以下几个控件的用法

  • Label
  • Frame
  • Entry
  • Text
  • Button
  • Listbox
  • Scrollbar

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

3.1 Label

说明

  标签

用法

  Label(根对象, [属性列表])

属性

  • text    要现实的文本
  • bg    背景颜色
  • font    字体(颜色, 大小)
  • width  控件宽度
  • height 控件高度

  以下介绍的控件差不多都有这几个属性, 更详细的属性查看参考网页

举例

# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry('300x200')l = Label(root, text="show", bg="green", font=("Arial", 12), width=5, height=2)l.pack(side=LEFT)  #这里的side可以赋值为LEFT  RTGHT TOP  BOTTOMroot.mainloop()

效果

  

3.2 Frame

说明

  在屏幕上创建一块矩形区域,多作为容器来布局窗体

用法

  Frame(根对象, [属性列表])

举例

     要在控件中出现这样的四个词语

                 校训

          厚德        敬业

          博学        乐群     

  可以规划为         

   

# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry('300x200')Label(root, text='校训'.decode('gbk').encode('utf8'), font=('Arial', 20)).pack()frm = Frame(root)#leftfrm_L = Frame(frm)Label(frm_L, text='厚德'.decode('gbk').encode('utf8'), font=('Arial', 15)).pack(side=TOP)Label(frm_L, text='博学'.decode('gbk').encode('utf8'), font=('Arial', 15)).pack(side=TOP)frm_L.pack(side=LEFT)#rightfrm_R = Frame(frm)Label(frm_R, text='敬业'.decode('gbk').encode('utf8'), font=('Arial', 15)).pack(side=TOP)Label(frm_R, text='乐群'.decode('gbk').encode('utf8'), font=('Arial', 15)).pack(side=TOP)frm_R.pack(side=RIGHT)frm.pack()root.mainloop()

效果

  

 

3.3 Entry

说明

  创建单行文本框

用法

  •   创建:lb =Entry(根对象, [属性列表])
  •   绑定变量 var=StringVar()    lb=Entry(根对象, textvariable = var)
  •   获取文本框中的值   var.get()
  •   设置文本框中的值   var.set(item1)

举例

# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry()var = StringVar()e = Entry(root, textvariable = var)var.set("hello")e.pack()    root.mainloop()

效果

  

3.4 Text

说明

  向该空间内输入文本

用法

  t = Text(根对象)

  插入:t.insert(mark, 内容)

  删除:t.delete(mark1, mark2)

  其中,mark可以是行号,或者特殊标识,例如

  • INSERT:光标的插入点CURRENT:鼠标的当前位置所对应的字符位置
  • END:这个Textbuffer的最后一个字符
  • SEL_FIRST:选中文本域的第一个字符,如果没有选中区域则会引发异常
  • SEL_LAST:选中文本域的最后一个字符,如果没有选中区域则会引发 异常

举例

# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry('300x200')t = Text(root)t.insert(1.0, 'hello\n')t.insert(END, 'hello000000\n')t.insert(END, 'nono')t.pack()root.mainloop()

效果

  

3.5 Button

说明

  创建按钮

用法

  Button(根对象, [属性列表])

举例

# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry()def printhello():    t.insert('1.0', "hello\n")    t = Text()t.pack()Button(root, text="press", command = printhello).pack()root.mainloop()

效果

  

3.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>', 函数)
  •   获得所选中的选项 lbl.get(lb.curselection())

属性

  selectmode可以为BROWSE MULTIPL SINGLE

举例

# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry()def print_item(event):    print lb.get(lb.curselection())    var = StringVar()lb = Listbox(root,  listvariable = var)list_item = [1, 2, 3, 4]         #控件的内容为1 2 3 4for item in list_item:    lb.insert(END, item)lb.delete(2, 4)                  #此时控件的内容为1 3
var.set(('a', 'ab', 'c', 'd')) #重新设置了,这时控件的内容就编程var的内容了print var.get()lb.bind('<ButtonRelease-1>', print_item)lb.pack() root.mainloop()

效果

  

3.7 Scrollbar

说明

  在屏幕上创建一块矩形区域,多作为容器来布局窗体

用法

  Frame(根对象, [属性列表]), 最长用的用法是和别的控件一起使用.

举例

from Tkinter import *root = Tk()root.title("hello world")root.geometry()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)lb.pack(side=LEFT, fill=BOTH)scrl['command'] = lb.yviewroot.mainloop()

效果

  

4. 源码附件

代码

View Code

文本

View Code


参考资料

通用控件属性:http://my.oschina.net/TyLucifer/blog/112961

 

文件路径:http://blog.sina.com.cn/s/blog_76129c6f0101892q.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python 图形化界面设计
Tkinter教程之Grid篇
python GUI编程(Tkinter)
jquery控件替换显示内容
Tkinter教程3——一个例子(真实的)程序
Delphi XE2 之 FireMonkey 入门(35)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服