Python图形界面(GUI)Tkinter笔记(三):控件的定位(1)

2024-05-12 03:04

本文主要是介绍Python图形界面(GUI)Tkinter笔记(三):控件的定位(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        Tkinter(GUI)设计图形界面时有三种控件的包装方法去定位各控件在窗口(父容器、根窗口)上的位置。

【1】pack()方法:用方位来定位位置,类似于Word文档中的文字对齐方式。

【2】grid()方法:用二维表格式的坐标值定位,类似于EXCEL单位元。

【3】place()方法:用窗口的像素进行定位,类似于坐标点定位。

           其余笔记:【Python图形界面(GUI)Tkinter笔记(总目录)】

【1】pack()方法:用方位来定位位置,类似于Word文档中的文字对齐方式。

        pack(参数1,参数2......)

【一些常用参数:】

 (1)side:设置控件的水平或垂直位置

        top:由上往下排,这是默认值;   bottom:由下往上排;    

        left:由左往右排;  right:由右往左排。

 (2)padx/pady:设置控件边界间相互的距离或与父容器边框的距离,

                                padx指水平距离,pady指垂直距离,单位是像素。

 (3)ipadx/ipady:设置标签内文本与标签容器间的距离,

                                ipadx指水平距离,ipady指垂直距离,单位是像素。

 (4)achor:用方位角的方法(类似于九宫格)设置标签的位置

#        NW:西北角;            N:正北;           NE:东北角;      

#         W:正西;         CENTER:中心居中;       E:正东;    

#        SW:西南角;            S:正南;          SE:东南角。

(5)fill:设置控件填满所在行或列。fill=X,指填满所在行。fill=Y,指填满所在列。

(6)expand:设置控件填满父容器其余的空白空间。

                        默认是expand=False是指不填满,若设置expand=True则指填满。

 (7)size:获取控件的大小。

(8)propagate(布尔值):设置父窗口大小由子控件决定,默认是True。

(9)info:获取Pack()各参数的对应值

【例子更直观,练习1】

'''
Tkinter(GUI)设计图形界面时有三种控件的包装方法去定位各控件在窗口(父容器、根窗口)上的位置。
【1】pack()方法:用方位来定位位置,类似于Word文档中的文字对齐方式。
【2】grid()方法:用二维表格式的坐标值定位,类似于EXCEL单位元。
【3】place()方法:用窗口的像素进行定位,类似于坐标点定位。
'''
# 【1】pack()方法:用方位来定位位置,类似于Word文档中的文字对齐方式。
# pack(参数1,参数2......)
# 一些常用参数:
# (1)side:设置控件的水平或垂直位置
#   top:由上往下排,这是默认值;   bottom:由下往上排;    left:由左往右排;  right:由右往左排。
# (2)padx/pady:设置控件边界间相互的距离或与父容器边框的距离,padx指水平距离,pady指垂直距离,单位是像素。
# (3)ipadx/ipady:设置标签内文本与标签容器间的距离,ipadx指水平距离,ipady指垂直距离,单位是像素。
# (4)achor:用方位角的方法(类似于九宫格)设置标签的位置
#        NW:西北角;            N:正北;           NE:东北角;       
#         W:正西;         CENTER:中心居中;       E:正东;    
#        SW:西南角;            S:正南;          SE:东南角。
# (5)fill:设置控件填满所在行或列。fill=X,指填满所在行。fill=Y,指填满所在列。
# (6)expand:设置控件填满父容器其余的空白空间。默认是expand=False是指不填满,若设置expand=True则指填满。
# (7)size:获取控件的大小。
# (8)propagate(布尔值):设置父窗口大小由子控件决定,默认是True。
# (9)info:获取Pack()各参数的对应值
import tkinter as tk
RootWin = tk.Tk() # 创建父容器对象
RootWin.geometry("%dx%d+%d+%d"%(1200,500,100,100)) # 设置根窗口的大小,及在屏幕上展示的位置
RootWin.title("父容器(根窗口)标题!") # 为父容器(根窗口)写上标题LabelTOP_1 = tk.Label(RootWin,text="TOP标签1",bg='yellow',width=16) # 创建第1个标签,背景色为黄色,宽度为16
LabelTOP_2 = tk.Label(RootWin,text="TOP标签2",bg='green',width=16) # 创建第2个标签,背景色为绿色,宽度为16
LabelTOP_3 = tk.Label(RootWin,text="TOP标签3",bg='blue',width=16) # 创建第3个标签,背景色为蓝色,宽度为16
LabelTOP_1.pack(side="top") # 包装且定位“TOP标签1”控件,由上往下排,默认值可留空不写
LabelTOP_2.pack() # 包装且定位“TOP标签2”控件,由上往下排,默认值可留空不写
LabelTOP_3.pack() # 包装且定位“TOP标签3”控件,由上往下排,默认值可留空不写LabelLEFT_1 = tk.Label(RootWin,text="LEFT标签1",bg='yellow',width=16) # 创建第1个标签,背景色为黄色,宽度为16
LabelLEFT_2 = tk.Label(RootWin,text="LEFT标签2",bg='green',width=16) # 创建第2个标签,背景色为绿色,宽度为16
LabelLEFT_3 = tk.Label(RootWin,text="LEFT标签3",bg='blue',width=16) # 创建第3个标签,背景色为蓝色,宽度为16
LabelLEFT_1.pack(side="left") # 包装且定位“LEFT标签1”控件,由左往右排
LabelLEFT_2.pack(side="left") # 包装且定位“LEFT标签2”控件,由左往右排
LabelLEFT_3.pack(side="left") # 包装且定位“LEFT标签3”控件,由左往右排LabelRIGHT_1 = tk.Label(RootWin,text="RIGHT标签1",bg='yellow',width=16) # 创建第1个标签,背景色为黄色,宽度为16
LabelRIGHT_2 = tk.Label(RootWin,text="RIGHT标签2",bg='green',width=16) # 创建第2个标签,背景色为绿色,宽度为16
LabelRIGHT_3 = tk.Label(RootWin,text="RIGHT标签3",bg='blue',width=16) # 创建第3个标签,背景色为蓝色,宽度为16
LabelRIGHT_1.pack(side="right",padx=10) # 包装且定位“RIGHT标签1”控件,由右往左排,控件间左右相距10个像素
LabelRIGHT_2.pack(side="right",padx=10) # 包装且定位“RIGHT标签2”控件,由右往左排,控件间左右相距10个像素
LabelRIGHT_3.pack(side="right",padx=10) # 包装且定位“RIGHT标签3”控件,由右往左排,控件间左右相距10个像素LabelBOTTOM_1 = tk.Label(RootWin,text="BOTTOM标签1",bg='yellow',width=16) # 创建第1个标签,背景色为黄色,宽度为16
LabelBOTTOM_2 = tk.Label(RootWin,text="BOTTOM标签2",bg='green',width=16) # 创建第2个标签,背景色为绿色,宽度为16
LabelBOTTOM_3 = tk.Label(RootWin,text="BOTTOM标签3",bg='blue',width=16) # 创建第3个标签,背景色为蓝色,宽度为16
LabelBOTTOM_1.pack(side="bottom",pady=10) # 包装且定位“标签1”控件,由下往上排,控件间上下相距10个像素
LabelBOTTOM_2.pack(side="bottom",pady=10) # 包装且定位“标签2”控件,由下往上排,控件间上下相距10个像素
LabelBOTTOM_3.pack(side="bottom",pady=10) # 包装且定位“标签3”控件,由下往上排,控件间上下相距10个像素RootWin.mainloop() # 把Gui图形界面呈现出来

【运行结果】

【例子更直观,练习2】

'''
Tkinter(GUI)设计图形界面时有三种控件的包装方法去定位各控件在窗口(父容器、根窗口)上的位置。
【1】pack()方法:用方位来定位位置,类似于Word文档中的文字对齐方式。
【2】grid()方法:用二维表格式的坐标值定位,类似于EXCEL单位元。
【3】place()方法:用窗口的像素进行定位,类似于坐标点定位。
'''
# 【1】pack()方法:用方位来定位位置,类似于Word文档中的文字对齐方式。
# pack(参数1,参数2......)
# 一些常用参数:
# (1)side:设置控件的水平或垂直位置
#   top:由上往下排,这是默认值;   bottom:由下往上排;    left:由左往右排;  right:由右往左排。
# (2)padx/pady:设置控件边界间相互的距离或与父容器边框的距离,padx指水平距离,pady指垂直距离,单位是像素。
# (3)ipadx/ipady:设置标签内文本与标签容器间的距离,ipadx指水平距离,ipady指垂直距离,单位是像素。
# (4)achor:用方位角的方法(类似于九宫格)设置标签的位置
#        NW:西北角;            N:正北;           NE:东北角;       
#         W:正西;         CENTER:中心居中;       E:正东;    
#        SW:西南角;            S:正南;          SE:东南角。
# (5)fill:设置控件填满所在行或列。fill=X,指填满所在行。fill=Y,指填满所在列。
# (6)expand:设置控件填满父容器其余的空白空间。默认是expand=False是指不填满,若设置expand=True则指填满。
# (7)size:获取控件的大小。
# (8)propagate(布尔值):设置父窗口大小由子控件决定,默认是True。
# (9)info:获取Pack()各参数的对应值
import tkinter as tk
RootWin = tk.Tk() # 创建父容器对象
RootWin.geometry("%dx%d+%d+%d"%(600,200,100,100)) # 设置根窗口的大小,及在屏幕上展示的位置
RootWin.title("父容器(根窗口)标题!") # 为父容器(根窗口)写上标题Label_NE = tk.Label(RootWin,text="东北角标签",bg='yellow',width=16) # 创建第1个标签,背景色为黄色,标签宽度为16
Label_E = tk.Label(RootWin,text="正东标签",bg='green',width=16)    # 创建第2个标签,背景色为黄色,标签宽度为16
Label_SE= tk.Label(RootWin,text="东南角标签",bg='blue',width=16)    # 创建第3个标签,背景色为蓝色,标签宽度为16
Label_NE.pack(anchor='ne') # 包装且定位“标签1”控件,处于东北角
Label_E.pack(anchor='e')   # 包装且定位“标签1”控件,处于正东
Label_SE.pack(anchor='se') # 包装且定位“标签3”控件,处于东南角Label_SE_OPEN = tk.Label(RootWin,text="以东南角为参照定位标签1",bg='yellow',width=20) # 创建第1个标签,背景色为黄色,标签宽度为20
Label_SE_CLOSE = tk.Label(RootWin,text="以东南角为参照定位标签2",bg='blue',width=20)  # 创建第3个标签,背景色为蓝色,标签宽度为20
Label_SE_OPEN.pack(anchor='se',side='right',pady=10) # 包装且定位“标签1”处于东南角,从右往左排,上下边界距离10个像素
Label_SE_CLOSE.pack(anchor='se',side='right',pady=10) # 包装且定位“标签1”处于东南角,从右往左排,上下边界距离10个像素RootWin.mainloop() # 把Gui图形界面呈现出来

【运行结果】

这篇关于Python图形界面(GUI)Tkinter笔记(三):控件的定位(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/981429

相关文章

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

《offer来了》第二章学习笔记

1.集合 Java四种集合:List、Queue、Set和Map 1.1.List:可重复 有序的Collection ArrayList: 基于数组实现,增删慢,查询快,线程不安全 Vector: 基于数组实现,增删慢,查询快,线程安全 LinkedList: 基于双向链实现,增删快,查询慢,线程不安全 1.2.Queue:队列 ArrayBlockingQueue:

Python 字符串占位

在Python中,可以使用字符串的格式化方法来实现字符串的占位。常见的方法有百分号操作符 % 以及 str.format() 方法 百分号操作符 % name = "张三"age = 20message = "我叫%s,今年%d岁。" % (name, age)print(message) # 我叫张三,今年20岁。 str.format() 方法 name = "张三"age

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

操作系统实训复习笔记(1)

目录 Linux vi/vim编辑器(简单) (1)vi/vim基本用法。 (2)vi/vim基础操作。 进程基础操作(简单) (1)fork()函数。 写文件系统函数(中等) ​编辑 (1)C语言读取文件。 (2)C语言写入文件。 1、write()函数。  读文件系统函数(简单) (1)read()函数。 作者本人的操作系统实训复习笔记 Linux

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa

时间服务器中,适用于国内的 NTP 服务器地址,可用于时间同步或 Android 加速 GPS 定位

NTP 是什么?   NTP 是网络时间协议(Network Time Protocol),它用来同步网络设备【如计算机、手机】的时间的协议。 NTP 实现什么目的?   目的很简单,就是为了提供准确时间。因为我们的手表、设备等,经常会时间跑着跑着就有误差,或快或慢的少几秒,时间长了甚至误差过分钟。 NTP 服务器列表 最常见、熟知的就是 www.pool.ntp.org/zo

python实现最简单循环神经网络(RNNs)

Recurrent Neural Networks(RNNs) 的模型: 上图中红色部分是输入向量。文本、单词、数据都是输入,在网络里都以向量的形式进行表示。 绿色部分是隐藏向量。是加工处理过程。 蓝色部分是输出向量。 python代码表示如下: rnn = RNN()y = rnn.step(x) # x为输入向量,y为输出向量 RNNs神经网络由神经元组成, python

python 喷泉码

因为要完成毕业设计,毕业设计做的是数据分发与传输的东西。在网络中数据容易丢失,所以我用fountain code做所发送数据包的数据恢复。fountain code属于有限域编码的一部分,有很广泛的应用。 我们日常生活中使用的二维码,就用到foutain code做数据恢复。你遮住二维码的四分之一,用手机的相机也照样能识别。你遮住的四分之一就相当于丢失的数据包。 为了实现并理解foutain