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实现的多线程端口扫描工具分享

    Python实现的多线程端口扫描工具分享

    这篇文章主要介绍了Python实现的多线程端口扫描工具分享,工具实现了扫单IP和扫IP段功能,本文给出运行效果和实现源码,需要的朋友可以参考下
    2015-01-01
  • python查看自己安装的所有库并导出的命令

    python查看自己安装的所有库并导出的命令

    这篇文章主要介绍了python查看自己安装的所有库并导出,主要包括查看安装的库通过命令查询,导出库安装文件执行命令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • Anaconda+Pycharm+Pytorch虚拟环境创建(各种包安装保姆级教学)

    Anaconda+Pycharm+Pytorch虚拟环境创建(各种包安装保姆级教学)

    相信很多时候大家都会用到虚拟环境,他具有可以让你快速切换不同的python版本,本文主要介绍了Anaconda+Pycharm+Pytorch虚拟环境创建,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • 一篇文章让你快速掌握Pandas可视化图表

    一篇文章让你快速掌握Pandas可视化图表

    大家都知道Pandas是基于Python平台的大数据分析与处理的利器,它可以把十分复杂的可视化过程,变得简单一点,这篇文章主要给大家介绍了关于Pandas可视化图表的相关资料,需要的朋友可以参考下
    2021-08-08
  • django免除csrf校验的方法

    django免除csrf校验的方法

    这篇文章主要介绍了django免除csrf校验的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • opencv+tesseract实现验证码识别的示例

    opencv+tesseract实现验证码识别的示例

    本文主要介绍了opencv+tesseract实现验证码识别的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 分享5个方便好用的Python自动化脚本

    分享5个方便好用的Python自动化脚本

    这篇文章主要介绍了分享5个方便好用的Python自动化脚本,这次我们使用Python来实现几个自动化场景,或许可以用到你的工作中或者对你的学习有所帮助,需要的朋友可以参考一下
    2022-03-03
  • Python PiP 换镜像源的实现步骤

    Python PiP 换镜像源的实现步骤

    这篇文章主要为大家介绍了配置pip镜像源以加速Python包下载,包括更新pip、永久/临时换源、验证源生效、恢复默认源等操作,具有一定的参考价值,感兴趣的可以了解一下
    2023-02-02
  • 在python下使用tensorflow判断是否存在文件夹的实例

    在python下使用tensorflow判断是否存在文件夹的实例

    今天小编就为大家分享一篇在python下使用tensorflow判断是否存在文件夹的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python自定义类的数组排序实现代码

    Python自定义类的数组排序实现代码

    这篇文章主要介绍了Python自定义类的数组排序实现代码,需要的朋友可以参考下
    2016-08-08

最新评论