前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python打包GUI界面组件汇总,Tkinter(TK)实例代码

Python打包GUI界面组件汇总,Tkinter(TK)实例代码

作者头像
二爷
发布2020-07-22 14:19:05
6.7K0
发布2020-07-22 14:19:05
举报
文章被收录于专栏:二爷记二爷记二爷记

Tkinter是python自带的gui界面工具,作为非常强大的内置库tkinter,利用它可以很轻松做出一些简易的UI界面,Tkinter中给我们提供了15种控件供大家使用。

Tkinter绑定了 Python 的 Tk GUI 工具集 ,就是Python 包装的Tcl代码,通过内嵌在 Python 解释器内部的 Tcl 解释器实现, Tkinter的调用转换成 Tcl 命令,然后交给 Tcl 解释器进行解释,实现 Python 的 GUI 界面。对比Tk和其它语言的绑定,比如 PerlTk ,是直接由 Tk 中的 C 库实现的。

Tkinter优缺点:

历史最悠久, Python 事实上的标准 GUI , Python 中使用 Tk GUI 工具集的标准接口,已经包括在标准的 Python Windows 安 装中,著名的 IDLE 就是使用 Tkinter 实现 GUI 的创建的 GUI 简单,学起来和用起来也简单。

以下是实例代码:

#11.2.1窗体
import tkinter  #导入 tkinter 模块

MainForm=tkinter.Tk()   #建窗体实例
MainForm.geometry("250x150") #设置窗体物理大小(长x高)

MainForm.title("三酷猫") #设置窗体标题属性
MainForm['background']='LightSlateGray' #设置窗体背景颜色属性

btn1=tkinter.Button(MainForm,text="退出",fg='black')  #窗体上创建 btn1 按钮
btn1.pack()   #pack() 方法将 btn1 按钮放到窗体上

def fun_properry(event):
    event.widget["activeforeground"]="red"
    event.widget['text']="OK"
btn1.bind("<Enter>",fun_properry)

MainForm.mainloop() #启动窗体运行,并等待接收各种事件信息

运行效果:

#11.2.2
import tkinter #导入 tkinter 模块
MainForm= tkinter.Tk() #引用Tk()生成MainForm窗体实例
MainForm.geometry("250x150") #设置窗体大小
MainForm.title("三酷猫") #设置新的窗体标题
#MainForm.iconbitmap('图片路径') #设置窗体新图标
MainForm['background']='LightSlateGray' #设置窗体背景颜色
btn1=tkinter.Button(MainForm,text="退出",fg="black") #在窗体上创建 btn1 按钮

def turn_property(event):  #自定义回调函数 trun_proerty
    event.widget["activeforeground"]="red"  #鼠标左键按下时,标题显示红色
    event.widget["text"]="OK"  #鼠标指针接触按钮时,标题变 OK

btn1.bind("<Enter>",turn_property)  #bind()绑定鼠标进入事件
btn1.pack() #pack()方法将btn1放到窗体上
MainForm.mainloop() #启动主窗体事件循环等待

运行效果:

#11.3
import tkinter
MainFrom=tkinter.Tk()
MainFrom.geometry("250x150")
btn1=tkinter.Button(MainFrom,text="1",fg="black") #在窗体上创建按钮1实例
btn2=tkinter.Button(MainFrom,text="2",fg="black") #在窗体上创建按钮2实例
btn3=tkinter.Button(MainFrom,text="3",fg="black") #在窗体上创建按钮3实例
btn1.pack(side="top") #在窗体顶端对齐设置按钮1
btn2.pack(side="top") #在窗体顶端对齐设置按钮2
btn3.pack(side="top") #在窗体顶端对齐设置按钮3
MainFrom.mainloop() #开启主窗体事件循环等待

运行效果:

#11.4
import tkinter
MainFrom=tkinter.Tk()
MainFrom.geometry("250x100")
btn1=tkinter.Button(MainFrom,text="1",fg="black")
btn2=tkinter.Button(MainFrom,text="2",fg="black")
btn3=tkinter.Button(MainFrom,text="3",fg="black")
btn1.pack(side="left",padx="1m") #按钮1在窗体左对齐设置,间隔1mm
btn2.pack(side="left",padx="1m") #按钮2在窗体左对齐设置,间隔1mm
btn3.pack(side="left",padx="1m") #按钮3在窗体左对齐设置,间隔1mm
MainFrom.mainloop() #启动主窗体事件循环等待

运行效果:

#11.6
from tkinter import *
root=Tk()  #创建窗体
m1=Menu(root) #创建菜单实例
root.config(menu=m1) #为窗体设置菜单属性
def callback():  #定义菜单鼠标单击事件回调函数
    root.title("OK") #调用成功,在窗体标题上显示 OK
filemenu=Menu(m1) #在m1菜单实例上建立新的子菜单实例
m1.add_cascade(label="File",menu=filemenu)  #在m1上设置子菜单名并关联子菜单1
filemenu.add_command(label="New",command=callback)  #在子菜单增加选择项名称和事件
filemenu.add_command(label='Open...',command=callback) #增加 Open 选择项
filemenu.add_separator() #增加分割线
filemenu.add_command(label="Exit",command=callback) #增加 Exit 选择项
helpmenu=Menu(m1) #在m1上新创建帮助子菜单实例2
m1.add_cascade(label="Help",menu=helpmenu) #在m1上设置子菜单名并关联子菜单2
helpmenu.add_command(label="About...",command=callback) #Help 子菜单增加 About... 选择项
mainloop() #启动窗体循环功能

运行效果:

from tkinter import *

master=Tk()
master.geometry("700x600")
# =============================================  Layber 标签组件
l_show=Label(master,text="三酷猫:") #创建带标题的 Label 实例
l_show.pack(side="left") #带标题标签在窗体左对齐设置(1)

# =============================================  Entry 单行文本组件
e_show=Entry(master,width=10) #创建10个字符宽的单文本输入框
e_show.pack(side="left") #单文本框在窗体左对齐设置(3)

# =============================================  Text 单行文本组件
t_show=Text(master,width=10,height=4) #创建多行输入框
t_show.pack(side="bottom") #多行文本框在窗体底对齐设置(4)

# =============================================  Checkbutton 复选框组件
var=StringVar() #字符串变量子类,创建对应的实例1
c_show=Checkbutton(master,text="酷猫",variable=var,
                   onvalue="RGB",offvalue="L",fg="blue") #创建带蓝色标题的复选框
c_show.pack(side="top") #复选框在窗体顶端对齐设置

# =============================================  Radiobutton 单选组件
v=IntVar() #整型变量子类,创建对应的实例2
r_show=Radiobutton(master,text="One",variable=v,value=1) #创建单选框
r_show.pack(anchor=W) #单选框定位于窗体西边

# =============================================  Frame 框架组件
f_show=Frame(master,height=200,width=200,bd=1,bg='white',relief=SUNKEN) #创建框架
f_show.pack(anchor="center") #定位于窗体中间位置(7)

# =============================================  LabelFrame 标签框架组件
lf_show=LabelFrame(master,text="Group",padx=5,pady=5) #创建标签框架
lf_show.pack(padx=10,pady=10,expand='yes') #相对于(7)位置设置(8)位置
e1=Entry(lf_show,width=10) #在标签框架容器里增加文本输入框1
e1.pack() #在标签框架里顶对齐文本输入框1
e2=Entry(lf_show,width=10) #在标签框架容器里增加文本输入框2
e2.pack() #在标签框架里顶对齐文本输入框2

# =============================================  ListBox 列表框组件
lb_show=Listbox(master,bg="yellow",height=5,width=20) #创建黄色列表框实例
lb_show.pack(side="top") #相对于(8)进行顶对齐列表框(9)
for item in ["one","tow","three","four"]:
    lb_show.insert(END,item) #循环插入4个值到列表框中

# =============================================  Scrollbar 滚动条组件
s_show=Scrollbar(master) #创建滚动条实例
s_show.pack(side=RIGHT,fill=Y) #设置滚动条为右边且竖向滚动
lb_show1=Listbox(master,fg='red',height=5,width=20) #创建需要滚动条的列表框
lb_show1['yscrollcommand']=s_show.set #把滚动条对象赋给对象列表框属性
lb_show1.pack(side="right") #把滚动条的列表框定位(9)的右边(10)
for item in ["1","2","3","4","5","6","7"]:
    lb_show1.insert(END,item)
s_show.config(command=lb_show1.yview) #滚动条与列表框绑定连动命令属性

# =============================================  Scale 刻度条组件
sc_show=Scale(master,from_=0,to=100) #创建长度为100的刻度条
sc_show.pack(side="right") #在(10)左边显示刻度条(11)

# =============================================  Message及Button 组件
def showMessage(event): #自定义按钮鼠标事件回调函数
    m1=Message(master,text="非常好!",width=60) #调用 Message 组件显示信息
    m1.pack() #在窗体以默认方式设置 Message 信息(12)
b_show=Button(master,text="确认",fg="black") #创建按钮实例
b_show.bind("<Button-1>",showMessage) #按钮对象绑定鼠标回调事件
b_show.pack(side="left") #在窗体左对齐设置按钮(13)

# =============================================  Spinbox 组件
sb_show=Spinbox(master,from_=0,to=10) #创建取值范围在0-10的输入框
sb_show.pack(side="left") #在窗体左对齐设置(14)

# =============================================  Toplevel 子窗体组件
tL_show=Toplevel(master) #创建子窗体实例
tL_show.wm_attributes("-topmost",1) #设置该子窗体始终在界面最前面(15)
tL_show.title("OK!") #设置子窗体标题为OK!
t1_show=Text(tL_show,width=10,height=4) #在该窗体增加输入文本框1
t2_show=Text(tL_show,width=10,height=4) #在该窗体增加输入文本框2
t1_show.pack() #在子窗体设置文本输入框1位置
t2_show.pack() #在子窗体设置文本输入框2位置

# =============================================  PanedWindow 组件
pw=PanedWindow(orient=VERTICAL,bg="green") #创建带绿色背景的 PanedWindow 实例
pw.pack(fill=BOTH,expand=1) #在窗体上设置该组件(16)
for w in [Label,Button,Checkbutton,Radiobutton]: #循环生成4个组件
    pw.add(w(pw,text="可上下移动"))  #添加到 PanedWindow 组件里,执行后该组件里的4个组件可以上下移动

mainloop() #启动窗体信息循环功能

运行效果:

代码来源:

Python编程从零基础到项目实战(微课视频版)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与SEO学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档