您的位置:首页 > 编程语言 > Python开发

python之Tkinter控件学习

2015-12-03 16:24 453 查看
阅读目录

1. 产品介绍
2. 设计规划
3.
相关知识
4.
源码附件

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) #宽不可变, 高可变,默认为True
root.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  BOTTOM
root.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)
#left
frm_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)

#right
frm_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 4
for 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.yview

root.mainloop()


效果

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: