一个项目学会python的tkinter模块---GUI设计

tkinter简介
tkinter模块(“Tk接口”)是Scriptics的Tk GUI工具包的标准Python接口,支持在Unix平台、Windows系统和Macintosh系统上运行。因为它由很多小构件组成,当我们在设计一个GUI时,可以通过它丰富的构件库满足我们的需求。

项目概述
本项目基于tkinter模块,设计了一个简易调查问卷,问卷本身并无任何意义,其目的仅在于掌握如何使用tkinter中的小构件。因为本项目涵盖了tkinter的绝大多构件,故对于tkinter的学习有很大帮助。

项目设计

tkinter库的导入
因为tkinter是python3自带的库,所以不需要自己安装。导入到工程时,通过from tkinter import *。(注意:tkinter的首字母不能使用大写。)

构建项目类,将TK类实例化

class TkDemo():
    def __init__(self):
        master = Tk()
        master.title('TK学习')

在Python中,类应该先实例化,然后再使用类!

创建菜单栏

        # 创建菜单栏 (Menu)
        menubar = Menu(master)
        master.config(menu=menubar)
        # 创建文件下拉菜单
        filemenu = Menu(menubar, tearoff=0)
        menubar.add_cascade(label="文件", menu=filemenu)
        filemenu.add_command(label="新建···", command=self.newfile)
        filemenu.add_command(label="打开···", command=self.openfile)
        filemenu.add_command(label="保存", command=self.savefile)
        filemenu.add_command(label="关闭填写", command=master.quit)

这里写图片描述
步骤:先创建菜单栏;再创建下拉菜单,并设置标题;再添加下拉菜单中的内容。(注意继承关系。)label指的是名称,command指的是命令,即点击后所执行的代码。
(此处只列举了一个下拉菜单)

创建文字栏

        title = Label(master, text='这是一份无趣的调查问卷--建文大帝编',font='15', bg='white', fg='red')
        title.pack()

这里写图片描述

文字栏的创建比较简单。这里重点解释一下tkinter中的几何管理器。

想象我们设计出来的GUI界面是一个容器,我们要做的就是往这个父容器里添加其他构件,即添加子容器。怎么管理子容器在父容器中的位置呢?就由几何管理器来操作。

1 .pack() 包管理器
包管理器比较死板,控制方式就像在一个固定容器里搭积木,它会按照小构件的打包顺序依次向下搭起,默认是从顶部开始往里放直到全部放置完毕。我们可以使用 fill, expand, side来设置积木在矩形洞中的状态。
fill选项告诉包管理器这个小构件(widget)想填充这整个空间,并指定填充方式。
展示如下:

title.pack()
这里写图片描述

title.pack(fill=x)
这里写图片描述

title.pack(side=LEFT)
这里写图片描述

对于expand:当值非0时,是告诉包管理器分配额外的空间给构件,当父容器足够包裹所有的子构件时,多于的扩展空间就会填充在构件之间
(大家请自行尝试,看看窗口放大效果会更明显。)

2 .grid(row=x, column=y) 网格管理器
网格管理器被誉为Tkinter中最灵活的几何管理器,也是最需要学习的一种管理器。它把子容器放在一个二维的表里面,父容器被分成很多行和列,并在行和列所组成的每个单元格里面可以容纳一个子容器。
(后续例子中会大量使用网格管理器,请多留意)

3 .place(relx=x, rely=y, anchor=CENTER) 位置管理器
位置管理器直接指定小部件在窗口中的x和y值来设置位置,但是它不能兼容所有的计算机,在不同分辨率的窗口上排列的位置可能会不同,所以我们尽量避免使用它。

问题一(包含输入框和按钮)

<
  • 32
    点赞
  • 177
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值