tkinter高级布局:PanedWindow和notebook

news2024/11/22 16:52:33

文章目录

    • PanedWindow
    • notebook

tkinter系列:

  • GUI初步💎布局💎绑定变量💎绑定事件💎消息框💎文件对话框
  • Frame控件💎PanedWindow和notebook控件
  • 扫雷小游戏💎强行表白神器

tkinter传统的布局工具就是Frame,顶多算上LabelFrame,然后运用place, grid和pack,来排满一张窗口,其他的就没有了。接下来要介绍的两种布局控件,或者说是容器比较恰当,分别是可以动态划分子控件的PanedWindow,和提供了选项卡工具的otebook,其中后者只存在于tkinter.ttk中。

PanedWindow

PanedWindow可以理解为是更加高级的窗口或者Frame,在PanedWindow中,其子控件可以自由拖动边框。这个控件在tkinter和tkinter.ttk中都有,下面用ttk为示例

import tkinter as tk
import tkinter.ttk as ttk
 
pw = ttk.PanedWindow(orient='horizontal')
pw.pack(fill="both", expand=1)

pw.add(ttk.LabelFrame(pw, text="left"))
pw.add(ttk.LabelFrame(pw, text="right"))
 
tk.mainloop()

效果如下

在这里插入图片描述

在PaneWindow中,除了设置宽高的height, width,背景色bg,边框宽度bd,鼠标样式cursor,边框样式relief这些通用参数外,主要参数如下

参数
showhandle为True时显示方形手柄
handlepad手柄位置,默认8像素
handlesize手柄边长,默认8像素
opaqueresize默认为True,窗格的尺寸随用户鼠标的拖拽而实时变化;如设为False,则只有在松开鼠标后,窗格尺寸才发生变化。
orient窗格分布方式,可选 horizontal(横向)和 vertical(纵向)
sashpad设置每一条分割线到窗格间的间距
sashrelief分割线样式,默认"flat",可选"sunken",“raised”,“groove” 或 “ridge”
sashwidth设置分割线的宽度

notebook

选项卡也是非常实用的布局利器,有了这个,可以让窗口可以插入更多的内容,简单示例如下

nt = ttk.Notebook()
lf1 = ttk.LabelFrame(nt, text="选项卡1", labelanchor='n')
nt.add(lf1, text='选项卡1')
lf2 = ttk.LabelFrame(nt, text="选项卡2", labelanchor='n')
nt.add(lf2, text='选项卡2')
nt.pack(fill=tk.BOTH, expand=True)
tk.mainloop()

效果如下

在这里插入图片描述

其中add函数可以添加新的选项卡,除了待添加控件之外,其主要参数如下

参数
text选项卡中标题
compound当选项卡内同时含图像和文字时,彼此之间的位置关系
image选项卡以图像方式呈现
padding内边距
state选项卡状态,可选normal、disabled、hidden
sticky指出子窗口面板的配置方式,可选nsew,表示南北东西
underline指出第几个字母含下划线,从0开始计算的索引

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/892939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小航助学GESP_C++一级模拟测试卷第2套(含题库答题软件账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统(含题库答题软件账号)_程序猿下山的博客-CSDN博客 需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统(含题库答题软件账号)_程序猿下山的博客-CSD…

用Java实现原神抽卡算法

哈喽~大家好,好久没有更新了,也确实遇到了很多事,这篇开始恢复更新,喜欢的话,可以给个的三连,什么?你要白嫖?那可以给个免费的赞麻。 🥇个人主页:个人主页​​…

Android DataStore:安全存储和轻松管理数据

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、使用3.1 Preferences DataStore添加依赖数据读…

深度解析 Llama 2 的资源汇总:不容错过

“ 探索 Llama 2 背后的过程,包括了模型的全面解析,在线体验,微调,部署等,这份资源汇总将带您深入了解其内涵。” 01 — 周二发布了文章《中文大模型 Chinese-LLaMA-Alpaca-2 开源且可以商用》后,不少朋友们…

【Unity小技巧】Unity自制对象池和官方内置对象池的使用

文章目录 前言不使用对象池使用官方内置对象池应用 自制对象池总结源码参考完结 前言 发明对象池的人绝对是个天才,游戏中我们常常会遇到,频繁创建和销毁大量相同对象的场景,例如敌人子弹 如果我们不做任何处理,只是单纯的创建…

(stm32)低功耗模式

低功耗模式 执行哪个低功耗模式的程序判断流程 标志位设置操作一定要在WFI/WFE之前,调用此指令后立即进入睡眠判断流程 模式对比 睡眠模式 停止模式 待机模式

“绿心之眼”串联起“三大建筑”

本报记者 赵鹏 实习记者 池阳 通讯员 董浩程 步入夏末秋初的城市绿心森林公园,远远便看到在“三大建筑”间有块地面已悄然隆起,如同破土“种子”般正加速“萌发”。这枚生命之“种”泛着钢铁的颜色,一根根钢管编织起来,用叶脉的纹…

c语言每日一练(9)

前言:每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,暑假时三天之内必有一更,到了开学之后,将看学业情…

定位服务器CPU爆满的具体原因

1、查询CPU消耗的进程 使用top命令查看系统的CPU和内存使用情况 CPU一列是线程占用百分比 2、具体查看某个占分比大的进程 以为PId:7355为例, 执行top -Hp 7355,线程按照CPU使用率排序。 3、将线程PID转化为16进制 执行printf %x 7391,将…

三维模型OSGB格式轻量化重难点分析

三维模型OSGB格式轻量化重难点分析 在三维模型应用中,为了适应移动设备的硬件和网络限制等问题,OSGB格式轻量化处理已经成为一个重要的技术手段。但是,在实际应用中,OSGB格式轻量化仍然存在着一些重难点问题。下面将对这些问题进行…

视频云存储/安防监控/视频汇聚EasyCVR平台新增设备经纬度选取

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、…

Spring Clould 部署 - Docker

视频地址:微服务(SpringCloudRabbitMQDockerRedis搜索分布式) 初识Docker-什么是Docker(P42,P43) 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中&…

两个案例熟悉String的基本操作

1、第一个案例 Java语言规范要求完全相同的字符串字面量,应该包含同样的Unicode字符序列(包含同一份码点序列的常量),并且必须是指向同一个String类实例。 package string; public class StringTest4 {public static void main(St…

【3Ds Max】挤出命令的简单使用(实现二维变三维)

简介 在3ds Max中,"挤出"(Extrude)是一种常用的建模操作,用于在平面或曲面上创建立体几何形状。以下是使用3ds Max中的挤出命令的基本步骤: 创建基本几何形状: 在3ds Max中创建一个基本的几何形…

免费开源的vue+express搭建的后台管理系统

此项目已开源 前端git地址:exp后台管理系统前端: exp后台管理系统前端 后端git地址:express后台管理系统: express后台管理系统 安装运行 npm i yarn i 前端: npm run dev | yarn dev 后端: npm run start | yarn start 主要技术栈 前端后端名称版本名…

Ant Design Pro 前端脚手架 配置混合导航

Ant Design Pro脚手架 点击查看阅读 混合导航: 顶部导航和侧边栏导航实现联动效果,点击不同的顶部导航按钮会显示对应的子菜单项。 实现点: 1. 路由的配置 菜单展示 我们可以在 route 中进行 menu 相关配置,来决定当前路由是否…

传递给Java方法的参数必须完成初始化

说明 在调用Java方法的时候,传递给方法的参数必须经过初始化,否则会编译报错。 指向对象的变量,指向一个对象实例就是初始化;赋值为null也是初始化。 代码示例 没有初始化的变量传递给方法编译报错,初始化的编译通过…

QTableWidget使用

QTableWidget介绍 QTableWidget是Qt框架中的一个表格控件,用于显示二维表格数据。它是基于QTableView和QStandardItemModel的封装,提供了更简单的接口和功能。 QTableWidget主要具有以下特点: 二维数据表示:QTableWidget以行和列…

ruoyi-cloud 服务间的调用,OpenFeign的使用

1. 在公共包内添加实体类 2.在 com.ruoyi.common.core.constant 添加如下代码 package com.ruoyi.common.core.constant; public class ServiceNameConstants {/*** 药材服务的serviceid (生产者 nacos内注册应用名)*/public static final String DRUG_…

AI极客日报0818 - AI帮助中风患者重新行走

👀AI 日报合集 | 🧡 点赞关注评论拜托啦! 有了人工智能,似乎没有什么是我们解决不了的。人工智能的一项新突破让瘫痪的中风幸存者能够通过“智能裤子”再次行走。让我们深入了解…… 今日要点: **👖惊艳&#xff01…