python 24点 tkinter_python之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) #宽不可变, 高可变,默认为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()defprinthello():

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('', 函数)

获得所选中的选项 lbl.get(lb.curselection())

属性

selectmode可以为BROWSE MULTIPL SINGLE

举例

#-*- coding: cp936 -*-

from Tkinter import *root=Tk()

root.title("hello world")

root.geometry()defprint_item(event):printlb.get(lb.curselection())

var=StringVar()

lb= Listbox(root, listvariable =var)

list_item= [1, 2, 3, 4] #控件的内容为1 2 3 4for item inlist_item:

lb.insert(END, item)

lb.delete(2, 4) #此时控件的内容为1 3

var.set(('a', 'ab', 'c', 'd')) #重新设置了,这时控件的内容就编程var的内容了printvar.get()

lb.bind('', print_item)

lb.pack()

root.mainloop()

效果

3.7 Scrollbar

说明

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

用法

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

举例

from Tkinter import *root=Tk()

root.title("hello world")

root.geometry()defprint_item(event):printlb.get(lb.curselection())

var=StringVar()

lb= Listbox(root, height=5, selectmode=BROWSE, listvariable =var)

lb.bind('', print_item)

list_item= [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]for item inlist_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()

效果

4. 源码附件

代码

View Code

文本

View Code

参考资料

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值