tkinter高级布局之PanedWindow和notebook详解

 更新时间:2023年08月18日 10:31:16   作者:微小冷  
本文主要介绍了tkinter中的两种布局控件,分别是可以动态划分子控件的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开始计算的索引

到此这篇关于tkinter高级布局之PanedWindow和notebook详解的文章就介绍到这了,更多相关tkinter布局内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python在前端页面使用 MySQLdb 连接数据

    python在前端页面使用 MySQLdb 连接数据

    这篇文章主要介绍了MySQLdb 连接数据的使用,文章主要介绍的相关内容又插入数据,删除数据,更新数据,搜索数据,需要的小伙伴可以参考一下
    2022-03-03
  • python常用函数random()函数详解

    python常用函数random()函数详解

    这篇文章主要介绍了python常用函数random()函数,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • python判断是否汉字的5种方法实例

    python判断是否汉字的5种方法实例

    这篇文章主要给大家介绍了关于python判断是否汉字的5种方法,文中通过实例代码将判断的几种方法介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友可以参考下
    2023-06-06
  • 使用pandas读取表格数据并进行单行数据拼接的详细教程

    使用pandas读取表格数据并进行单行数据拼接的详细教程

    这篇文章主要介绍了使用pandas读取表格数据并进行单行数据拼接的详细教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 利用Python自制一个批量图片水印添加器

    利用Python自制一个批量图片水印添加器

    这篇文章主要为大家详细介绍了如何利用Python语言自制一个批量图片水印添加器,文中的示例代码讲解详细,具有一定的参考价值,需要的可以了解一下
    2022-10-10
  • Python实现复制文档数据

    Python实现复制文档数据

    我们百度搜索一些东西得时候,经常找到文档里面然后就会发现需要充值才能复制!怎么可以不花钱也保存呢?今天就分享给大家一个python获取文档数据得方法,需要的可以收藏一下
    2022-12-12
  • python如何实现递归转非递归

    python如何实现递归转非递归

    这篇文章主要介绍了python如何实现递归转非递归,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-02-02
  • 利用Python实现sqlite3增删改查的封装

    利用Python实现sqlite3增删改查的封装

    在一些小的应用中,难免会用到数据库,Sqlite数据库以其小巧轻便,无需安装,移植性好著称,下面这篇文章主要给大家介绍了关于利用Python实现sqlite3增删改查的封装,需要的朋友可以参考下
    2021-12-12
  • Python Traceback异常代码排错利器使用指南

    Python Traceback异常代码排错利器使用指南

    这篇文章主要为大家介绍了Python Traceback异常代码排错利器使用指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python实现播放和录制声音的功能

    Python实现播放和录制声音的功能

    这篇文章主要介绍了Python实现播放和录制声音的功能,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-08-08

最新评论