Python Tkinter详解 (十)控件的定位

前段时间看见有人问文本框的定位,翻看了之前的全部文章,发现关于控件的布局只用了最简单的pack(),当时只想越简单突显主题就好,没有详细讲解控件布局,现在补上。

通过前面的文档我们已经知道Tkinter控件的简单使用,想要拥有一个简洁、合理的界面,控件布局就显得尤为重要了,而Tkinter提供了三种布局方式给我们,下面一一讲解:

一、pack是一种相对布局方式,指定控件的相对位置,精确位置会由系统完成,如下:

from tkinter import *

window = Tk()

Label(window,text='first',bg='red').pack()
Label(window,text='second',bg='green').pack()
Label(window,text='third',bg='yellow').pack()

window.mainloop()

上面的pack布局没有任何属性参数,默认会自上而下垂直并且水平居中排列,我们通过背景色可以知道默认情况下,标签的宽度会随着文本长度的变化而变化,不同的背景色也方便观察下面的参数差异,接下来我们详细讲解一下pack的属性参数:

1、用side水平排列控件

from tkinter import *

window = Tk()

Label(window,text='first',bg='red').pack(side=LEFT)
Label(window,text='second',bg='green').pack(side=RIGHT)
Label(window,text='third',bg='yellow').pack(side=BOTTOM)

window.mainloop()

 
我们可以通过side=TOP/BOTTOM/LEFT/RIGHT,控制控件的相对位置(上下左右),注意这里的相对位置是以上一个控件的位置作为参照的,可以多用几个控件尝试一下就知道其中的奥妙了;

2、利用fill=x来是控件和窗体一样宽:

from tkinter import *

window = Tk()

Label(window,text='first',bg='red').pack(fill=X)
Label(window,text='second',bg='green').pack(fill=X)
Label(window,text='third',bg='yellow').pack(fill=X)
Button(window,text='fourth',bg='blue').pack(fill=X)

window.mainloop()

2、用padx、pady、ipadx、ipady控制控件的边距

from tkinter import *

window = Tk()

Label(window,text='first',bg='red').pack(fill=X,padx=10)            #水平外边距
Label(window,text='second',bg='green').pack(fill=X,pady=10)         #垂直外边距
Label(window,text='third',bg='yellow').pack(fill=X,ipadx=10)        #水平内边距
Button(window,text='fourth',bg='blue').pack(fill=X,ipady=10)        #垂直内边距

window.mainloop()

二、place与pack相反,是一种绝对位置布局方式,说的简单点就是坐标定位方式,窗体最左上角的位置就是原点(x=0,y=0)

from tkinter import *

window = Tk()

Label(window,text='first',bg='red').place(x=10,y=10)
Label(window,text='second',bg='green').place(x=10,y=40)
Label(window,text='third',bg='yellow').place(x=10,y=70)
Button(window,text='fourth',bg='blue').place(x=10,y=100)

window.mainloop()

三、grid布局我们可以理解成单元格布局方式,窗体就像是一个表格,横向、纵向划分了若干格子,我们将控件依次放入格子中进行定位,这是相对pack和place折中的方法:

from tkinter import *

window = Tk()

Label(window,text='first',bg='red').grid(row=1,column=1)
Label(window,text='second',bg='green').grid(row=1,column=3)
Label(window,text='third',bg='yellow').grid(row=2,column=2)
Button(window,text='fourth',bg='blue').grid(row=3,column=1)

window.mainloop()

三种控件布局方式各有千秋,我比较习惯使用place进行布局,这个还是看习惯和需求,大家有什么好的技巧也可以在下面留言,一起交流学习进步哈!

  • 19
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python TkinterPython 的标准 GUI 库,它提供了一系列的组件,如按钮、文本框、标签、菜单等,可以用于构建图形用户界面。Tkinter 是基于 Tcl/Tk 开发的,因此它具有跨平台的特性,可以在 Windows、Linux、Mac OS 等操作系统上运行。Tkinter 的使用非常简单,只需要导入 Tkinter 模块,创建一个窗口对象,然后在窗口对象上添加各种组件即可。Tkinter 还提供了事件处理机制,可以通过绑定事件来响应用户的操作。总之,Python Tkinter 是一个非常强大、易用的 GUI 库,适合用于开发各种桌面应用程序。 ### 回答2: Python TKinterPython 的标准 GUI(图形用户界面) 库,是 Python 最长寿的 GUI 工具包之一。Python 程序员能够通过它非常容易地创建 GUI 应用程序。这个库由 Tk 接口与其他一些库组成,其中最重要的是 tk 和 ttk。 GUI 系统显示的是图形用户界面,用户可以直接与应用程序进行交互,是一种方便用户操作的方式。常见的 TKinter 组件包括窗口、文本、标签、按钮、单选框、复选框、滚动条、下拉列表框、菜单、画布、框架等。 窗口和框架是 GUI 应用程序的基础,它们可以被认为是其他组件的容器。其中窗口是最外层的容器,它包含所有其他组件。框架是一种包含其他组件的容器,可以用于将组件组织成一组。 按钮组件是响应用户单击的组件,通常用于触发特定操作。它可以用以返回结果,启动程序,转换屏幕到另一个状态等。 文本和标签组件显示一段文字或给用户提供了一个展示数据的区域。它可以用于显示程序输出、问题等其他需要用户交互的场景。 复选框和单选框让用户来选择其中的一个或多个选项,而滚动条和下拉列表框则用于列表或滚动的文本框。 除此之外,还有菜单和画布等其他基本组件。菜单的作用是通过弹出菜单提供对程序设置和选项的访问,而画布的作用是可以用于绘制图形和图表等复杂的用户界面。综上所述,Python TKinter 组件是很完整的组件库,能够满足开发者应用程序的各种需求。 ### 回答3: Python tkinterPython的标准GUI(图形用户界面)库,它是一个用于构建GUI应用程序的集成开发环境(IDE)。Tkinter负责处理GUI的细节,包括窗口、控件布局、事件等。它可以实现丰富的GUI应用程序和桌面应用程序,如游戏、音频播放器、文本编辑器等。 Tkinter的组件包括: 1.窗口(Tk) Tkinter的窗口类是基于Tcl/Tk的有机结合,Tk是图形库,Tcl是一种编程语言。 2. 标签(Label) Label是Tkinter中常用的组件之一,它能够在窗口中展示文本或图片。 3.按钮(Button) Button是一个带有文本或图片的可点击的组件,用户可以使用它来触发事件或操作。 4.文本框(Entry) Entry是一个用于编辑用户输入的文本框,用户可以通过它输入数据。 5.下拉菜单(Menu) Menu是一个用于显示选项列表的组件,通常与菜单栏一起使用。 6.复选框(Checkbutton) Checkbutton是一个用于展示多个选项的组件,用户可以同时选择多个选项。 7.单选按钮(Radiobutton) Radiobutton也是一个用于展示多个选项的组件,但是只能选择其中的一个选项。 8.滚动条(Scrollbar) Scrollbar用于滚动一个组件中的内容,如文本框或列表等。 9.列表框(Listbox) Listbox是一个用于显示和编辑列表的组件,用户可以选择列表中的某个项目。 10.框架(Frame) Frame是一个用于组织其他组件的容器,它可以作为一个组件放置在窗口中。 11.画布(Canvas) Canvas是一个用于绘制图形和图像的组件,它支持多种绘图操作,如图形绘制、文本绘制、图像处理等。 总之,Python tkinter组件是实现GUI应用程序的重要工具,不仅可以实现简单的窗口、按钮等组件,还能够实现复杂的图形界面和多媒体应用程序。掌握这些组件的用法能够帮助开发者快速构建出美观、实用的GUI应用程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值