zoukankan      html  css  js  c++  java
  • Tkinter之使用padding属性调节组件距离

    给程序界面加了个菜单,导致菜单和组件的距离过近,非常难看。

     于是就想调一下组件和菜单的距离。

    看了下文档,有2种调节方式。

    一种是调节组件的自身的选项来进行调节,一种是使用padding属性进行调节。

    我是要对整行的组件进行调节,单个组件调节不合适,选择使用padding属性进行调节。

    根据官方文档给出的示例程序,主要是通过使用将组件添加到ttk.Frame,再通过ttk.Frame的padding属性进行调节。

    注意:tkinter 的Frame是没有padding属性的!!!一定是得用ttk.Frame。

    官方例子太复杂了,这里用我自己的例子。

    例子的代码如下:

    from tkinter.ttk import *
    
    inputFrame=Frame(root,padding=(10,5,10,0))
    
    
    inputLabel=Label(inputFrame,text = "目标路径:")
    inputLabel.grid(row = 0, column = 0)
    inputEntry=Entry(inputFrame, textvariable = inputPath)
    inputEntry.grid(row = 0, column = 1)
    inputButton=Button(inputFrame, text = "路径选择", command = selectInputPath)
    inputButton.grid(row = 0, column = 2)
    
    inputFrame.grid(row = 0, column = 0, columnspan=3)

    下面对代码进行说明。

    首先引入ttk,引入 ttk 后,系统默认都是使用ttk的Frame。

    from tkinter.ttk import *

    创建一个ttk.Frame组件 inputFrame ,将其放置在主窗口root中,设置padding为 10,5,10,0

    inputFrame=Frame(root,padding=(10,5,10,0))

    这里说下padding四个参数的意义,四个参数分别代表不同位置的要填充的大小。

    分别是左,上,右,下。

    padding=(左,上,右,下)

    将我要调节的那一行的组件全部放到 inputFrame 里面去。

    以 inputLabel 为例

    inputLabel=Label(inputFrame,text = "目标路径:")

    设置 inputLabel 在 inputFrame 内的布局,这个和我们在主窗口中使用grid布局的方式是一致的。

    inputLabel.grid(row = 0, column = 0)

    添加完所有要添加的组件到 inputFrame 中后,

    最后设置 inputFrame 在主窗口 root 中的布局

    inputFrame.grid(row = 0, column = 0, columnspan=3)

    修改前程序截图:

    修改后程序截图:

    参考:https://tkdocs.com/tutorial/grid.html#padding

  • 相关阅读:
    Android sensor 系统框架 (一)
    enc28j60网卡驱动模块添加进linux内核,Kconfig,Makefile配置过程
    Linux samba服务器配置
    为群晖加把锁:使用ssh密钥保障数据安全
    浦发银行网上银行U盾证书无法更新的解决办法
    克隆Linux系统的网卡设置
    Linux路由:CentOS6的多种玩法
    专心学LINUX:CentOS关闭屏幕自动锁定和睡眠
    群晖:关闭软路由利用双网卡桥接直连电脑上网
    Ceph之二----部署Ceph集群
  • 原文地址:https://www.cnblogs.com/syxy/p/14710373.html
Copyright © 2011-2022 走看看