当前位置: 首页 > news >正文

Python源码:Tkinter组件布局管理的3种方式

Tkinter组件布局管理可以使用pack()方法、grid()方法和place()方法。pack()方法将组件放置在窗口中,grid()方法将组件放置在网格布局中,place()方法将组件放置在指定位置。

01使用pack()方法布局:

在Tkinter中,pack方法用于将控件打包到容器中,并控制其位置和大小。pack方法接受以下参数:

side: 指定控件应该放置在容器的哪个方向。可以设置为top、bottom、left、right、topleft、topright、bottomleft或bottomright。默认值为top.

fill: 指定控件在容器中应该如何填充空间。可以设置为none、x、y或both。默认值为none.

expand: 指定控件是否应该扩展以填充可用空间。可以设置为True或False。默认值为False.

anchor: 指定控件在容器中的位置参考点。可以设置为n、ne、nw、s、se或sw. 默认值为center.

padding: 指定控件与容器边界之间的内边距。默认值为0.

fill: 指定控件在容器中应该如何填充空间。可以设置为none、x、y或both. 默认值为none.
在这里插入图片描述


import tkinter as tkroot = tk.Tk()label1 = tk.Label(root, text="Label 1")
label2 = tk.Label(root, text="Label 2")
label3 = tk.Label(root, text="Label 3")label1.pack()
label2.pack()
label3.pack()root.mainloop()

02使用grid()方法布局:

grid是Tkinter中的一个布局管理器,用于在容器(例如Frame)中安排控件的位置和大小。grid方法接受以下参数:

row: 控制控件在行中的位置。

column: 控制控件在列中的位置。

rowspan: 控制控件跨越的行数。

columnspan: 控制控件跨越的列数。

ipadx: 控制控件在水平方向上的内边距。

ipady: 控制控件在垂直方向上的内边距。

padx: 控制控件与容器边界在水平方向上的内边距。

pady: 控制控件与容器边界在垂直方向上的内边距。

row_default: 控制控件在行中的默认位置。

column_default: 控制控件在列中的默认位置。在这里插入图片描述


import tkinter as tkroot = tk.Tk()label1 = tk.Label(root, text="Label 1")
label2 = tk.Label(root, text="Label 2")
label3 = tk.Label(root, text="Label 3")label1.grid(row=0, column=0)
label2.grid(row=1, column=0)
label3.grid(row=2, column=0)root.mainloop()

03使用place()方法布局:

在Python中,place方法用于设置控件在容器中的位置和大小。该方法接受以下参数:

x: 设置控件在容器中的水平位置。可以是一个整数或None。

y: 设置控件在容器中的垂直位置。可以是一个整数或None。

relx: 设置控件在容器中的相对水平位置。可以是一个小数(0表示左侧,1表示右侧)。

rely: 设置控件在容器中的相对垂直位置。可以是一个小数(0表示上侧,1表示下侧)。

width: 设置控件的宽度。可以是一个整数或None。

height: 设置控件的高度。可以是一个整数或None。
在这里插入图片描述

import tkinter as tkroot = tk.Tk()label1 = tk.Label(root, text="Label 1")
label2 = tk.Label(root, text="Label 2")
label3 = tk.Label(root, text="Label 3")label1.place(x=50, y=50)
label2.place(x=100, y=100)
label3.place(x=150, y=150)root.mainloop()
http://www.lryc.cn/news/102652.html

相关文章:

  • 网络防御之VPN
  • VUE使用docxtemplater导出word(带图片) 踩坑 表格循环空格 ,canvas.toDataURL图片失真模糊问题
  • ubuntu 安装 Pycharm社区版
  • IP 监控软件
  • C#实现读写CSV文件的方法详解
  • 04 http连接处理(上)
  • c++(强生成关键字+可变参数模板+emplace)[26]
  • Mysql 数据库开发及企业级应用
  • 【数据结构】_6.队列
  • 7 网络通信(上)
  • MFC图表控件high-speed-charting的使用
  • Unity中常用方法
  • 【监控系统】可视化工具Grafana简介及容器化部署实战
  • VUE之VueRouter页面跳转
  • 【188】Java8利用AVL树实现Map
  • [SQL挖掘机] - 右连接: right join
  • bug篇之基于docker安装nacos(2.1.1)使用dubbo连接不上的问题
  • 【Python入门系列】第二十一篇:Python物联网和传感器应用
  • Python爬虫的urlib的学习(学习于b站尚硅谷)
  • 【MongoDB】--MongoDB聚合Aggregation
  • Hadoop学习指南:探索大数据时代的重要组成——Hadoop概述
  • Java实现简单小画板
  • B078-项目实战--支付模块 领养订单支付流程
  • [css]margin-top不起作用问题(外边距合并)
  • Vue2基础八、插槽
  • 自然语言处理从入门到应用——LangChain:提示(Prompts)-[提示模板:连接到特征存储]
  • jenkins自定义邮件发送人姓名
  • SolidWorks二次开发---简单的连接solidworks
  • docker 安装 active Mq
  • 【Linux】TCP协议