黑马程序员技术交流社区

标题: 【上海校区】Python图形界面编程---Tkinter模块基础 [打印本页]

作者: 不二晨    时间: 2018-10-12 09:34
标题: 【上海校区】Python图形界面编程---Tkinter模块基础
Python本身语法优美, 但一旦到了GUI就丑陋得不行.
Python有很多GUI开发系统PyQt,PyGTK,wxPython,TkInter….等等
最近还有一种解决办法,使用html5搭建界面,加上一个web框架
结构形如:Python+HTML5+JS+Python
商业上PyQt用的多,这里只介绍Tkinter。

Tkinter

Tkinter是TK在python里的一个接口。TK是一个移植性高的工具集。
使用Tkinter的步骤:

导入Tkinter
创建顶层窗口
在顶层上创建其他控件
控件与后台代码链接
进入主程序循环事件
#coding:utf-8
import Tkinter
top=Tkinter.Tk()#创建顶层窗口
label=Tkinter.Label(top,text="hell \nworld")
label.pack()
Tkinter.mainloop()#加入服务
1
2
3
4
5
6
具体的控件使用方式 文档地址:http://zetcode.com/gui/tkinter/
博客:http://www.cnblogs.com/kaituorensheng/p/3287652.html

组件名        说明        用法        属性(参数)
label        标签        Label(根对象, [属性列表])        text:要现实的文本bg:背景颜色font:字体(颜色, 大小)width:控件宽度height:控件高度
Frame        在屏幕上创建一块矩形区域,多作为容器来布局窗体        Frame(根对象, [属性列表])        同上
Entry        创建单行文本框        创建:lb =Entry(根对象,[属性列表])
绑定变量: var=StringVar() lb=Entry(根对象, textvariable = var)
获取文本框中的值:var.get()设置文本框中的值 var.set(item1)        同上
Text        向该空间内输入文本        t = Text(根对象)插入:t.insert(mark, 内容)删除:t.delete(mark1, mark2)其中,mark可以是行号,或者特殊标识,例如•INSERT:光标的插入点CURRENT:鼠标的当前位置所对应的字符位置
•END:这个Textbuffer的最后一个字符
•SEL_FIRST:选中文本域的第一个字符,如果没有选中区域则会引发异常
•SEL_LAST:选中文本域的最后一个字符,如果没有选中区域则会引发 异常
同上
Button        创建按钮        Button(根对象, [属性列表])        同上
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())        同上
Scrollbar        在屏幕上创建一块矩形区域,多作为容器来布局窗体        Frame(根对象, [属性列表]), 最长用的用法是和别的控件一起使用.        同上






….
….
….
…..
…..
…..
demo1:标签按钮

#coding:utf-8
import Tkinter
top=Tkinter.Tk()#创建顶层窗口
label=Tkinter.Label(top,text="hello \nworld")
label.pack()
quit=Tkinter.Button(top,text='quit',command=top.quit,bg='red',fg='white')
quit.pack(fill=Tkinter.X,expand=1)
Tkinter.mainloop()#加入服务
1
2
3
4
5
6
7
8

demo2:进度条

#coding:utf-8
from Tkinter import *
def resize(ev=None):
    label.config(font='Helvetica -%d bold'%scale.get())

top=Tk()
top.geometry('250x150')#设置大小
label=Label(top,text='Hello World!',font='Helvetica -12 bold')
label.pack(fill=Y,expand=1)
#进度条控件
scale=Scale(top,from_=10,to=40,orient=HORIZONTAL,command=resize)#10-40
scale.set(12)#初始位置
scale.pack(fill=X,expand=1)

quit=Button(top,text="QUIT",command=top.quit,activeforeground='white',activebackground='red')#Button

quit.pack()

mainloop()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

---------------------
【转载】
作者:HuRuWo
原文:https://blog.csdn.net/lw_zhaorit ... 529?utm_source=copy



作者: 不二晨    时间: 2018-10-15 15:52
奈斯
作者: 魔都黑马少年梦    时间: 2018-11-1 16:25





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2