Python GUI编程学习笔记之tkinter界面布局显示详解


Posted in Python onMarch 30, 2020

本文实例讲述了Python GUI编程学习笔记之tkinter界面布局显示。分享给大家供大家参考,具体如下:


相关内容:

  • pack
    • 介绍
    • 常用参数
    • 使用情况
    • 常用函数
  • grid
    • 介绍
    • 常用参数
    • 使用情况
    • 常用函数
  • place
    • 介绍
    • 常用参数
    • 使用情况
    • 常用函数

首发时间:2018-03-04 14:20


pack:

from tkinter import *
root=Tk()

# for i in range(10):
  ##side
  # btn = Button(text=i)
  # btn.pack(side=LEFT)
  # btn.pack(side=RIGHT)
  # btn.pack(side=(TOP,LEFT))

  ####fill
  # btn.pack(fill=X)
  # btn.pack(side=LEFT,fill=Y)
  # btn.pack(fill=BOTH)

##expand
# btn1=Button(text=1,bg='green')
# btn2=Button(text=2,bg='yellow')
# btn1.pack(fill=X)
# btn2.pack(expand=True)
#anchor:
# btn1=Button(text=1,bg='green')
# btn2=Button(text=2,bg='yellow')
# btn1.pack(fill=X)
# btn2.pack(anchor=E)

#pack_propagete
# btn1=Button(text=1,bg='green')
# btn2=Button(text=2,bg='yellow')
# root.pack_propagate(0)
# btn1.pack()
# btn2.pack()

#pack_forget:
# import time,threading
# label=Label(text="警告!")
# label.pack()
# def run():
#   start_time=time.time()
#   while True:
#     if time.time()-start_time>3:
#       label.pack_forget()
#       break
# t=threading.Thread(target=run)
# t.setDaemon(True)
# t.start()

root.mainloop()

grid:

    • 介绍:grid是格子的意思,grid可以将控件区块式摆放.Python GUI编程学习笔记之tkinter界面布局显示详解
    • 常用参数:
      • row: 行号,区分不同控件是否处于同一行
      • column: 列号,区分不同控件是否处于同一列
      • sticky: 决定控件的贴靠方向,该选项从集合N,S,E,W [东南西北的意思],中取一个或多个值。比如要将标签与左边框对齐,可以使用W(西)Python GUI编程学习笔记之tkinter界面布局显示详解Python GUI编程学习笔记之tkinter界面布局显示详解
      • rowspan:行跨度,决定某个控件占的行数 ,默认一行
      • columnspan:列跨度,决定某个控件占的列数,默认一列
      • ipadx, ipady:内边距
      • padx,pady:外边距
    • 适用情况:
      • 设计对话框的时候特别方便Python GUI编程学习笔记之tkinter界面布局显示详解
      • 区块化摆放的时候
    • 补充:
      • 常用函数:
        • grid_forget :移除控件,但并没有进行摧毁,可以再次使用grid或其他方式来显示 [grid_remove有同样作用]
        • grid_propagete

          :由窗口调用来配置pack控件时窗口的大小,当flag=0时,那么窗口大小将不再仅仅包裹住所有控件,这时候窗口的高度和宽度设置才可以生效
        • grid_slaves():以列表方式返回本组件的所有子组件对象。

from tkinter import *

root=Tk()
root.title("我的窗口")
label_user=Label(text='用户名:',bg='green')
label_pwd=Label(text='密码:',bg='green')
user=Entry()
pwd=Entry()
# row,column,sticky
label_user.grid(row=0,column=0,sticky=W) #一个有sticky,一个没有sticky,以作区分
label_pwd.grid(row=1,column=0)
# rowspan,columnspan
user.grid(row=0,column=1)
pwd.grid(row=1,column=1)
btn=Button(text="提交")
btn.grid(row=0,column=3,rowspan=2,columnspan=2,padx=5, pady=5)
# 下面主要是将第一列拉大来显示上面sticky的效果
v=IntVar()
check=Checkbutton(text="下次自动登录",variable=v,)
check.grid(row=2,column=0,sticky=W)


# _forget:
import time,threading
label=Label(text="欢迎登录!",bg='blue')
label.grid()
def run():
  start_time=time.time()
  while True:
    if time.time()-start_time>3:
      label.grid_forget()
      break
t=threading.Thread(target=run)
t.setDaemon(True)
t.start()



root.mainloop()

place:

    • 介绍:可以使用绝对的位置或相对位置来摆放控件。 Python GUI编程学习笔记之tkinter界面布局显示详解 Python GUI编程学习笔记之tkinter界面布局显示详解
    • 常用参数:
      • x:控件在窗口中的x坐标
      • y:控件在窗口中的y坐标Python GUI编程学习笔记之tkinter界面布局显示详解
      • relx,rely:与主窗口的相对位置,比如Python GUI编程学习笔记之tkinter界面布局显示详解
      • relwidth,relheight:相对大小,比如height=0.5,width=0.5时控件占据窗口的四分之一大小
    • 适用情况:
      • 自定义显示方式
      • 将按钮定位在对话框中
    • 补充:
      • 常用函数:
        • place_forget():移除控件,但并没有进行摧毁,可以再次使用place或其他方式来显示
        • place_slaves():以列表方式返回本组件的所有子组件对象。[slaves()具有同样功能]
        • place_info():返回place提供的选项所对应得值。
from tkinter import *

root=Tk()
root.geometry('100x100')
label=Label(text="用户名:",bg='green')
entry=Entry()
label.pack(fill=X)
#x,y
# entry.place(x=0,y=0)

#relx,rely
# entry.place(relx=0.3, rely=0.3)
# entry.place(relx=0.5, rely=0.5)

#relheight,relwidth
# entry.place(relx=0.5, rely=0.5,relheight=0.5,relwidth=0.5)

#_forget:
import time,threading
label2=Label(text="警告!",bg='blue')
label2.place(relx=0.2,rely=0.2)
def run():
  start_time=time.time()
  while True:
    if time.time()-start_time>3:
      label2.place_forget()
      break
t=threading.Thread(target=run)
t.setDaemon(True)
t.start()

root.mainloop()

想要了解更多,可以参考tkinter的官方文档:http://effbot.org/tkinterbook/

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python使用urllib模块的urlopen超时问题解决方法
Nov 08 Python
python删除过期文件的方法
May 29 Python
Django中模型Model添加JSON类型字段的方法
Jun 17 Python
分析用Python脚本关闭文件操作的机制
Jun 28 Python
python 性能优化方法小结
Mar 31 Python
Python3.4解释器用法简单示例
Mar 22 Python
Python Subprocess模块原理及实例
Aug 26 Python
flask实现验证码并验证功能
Dec 05 Python
python 读写文件包含多种编码格式的解决方式
Dec 20 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
Aug 17 Python
发工资啦!教你用Python实现邮箱自动群发工资条
May 10 Python
pytorch中[..., 0]的用法说明
May 20 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
Mar 30 #Python
动态设置django的model field的默认值操作步骤
Mar 30 #Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 #Python
django 实现手动存储文件到model的FileField
Mar 30 #Python
解决django FileFIELD的编码问题
Mar 30 #Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
Mar 30 #Python
Django 删除upload_to文件的步骤
Mar 30 #Python
You might like
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
6种php上传图片重命名的方法实例
2013/11/04 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
javascript 动态生成私有变量访问器
2009/12/06 Javascript
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
js创建数组的简单方法
2016/07/27 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
vue2.0实现分页组件的实例代码
2017/06/22 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
Python中使用PDB库调试程序
2015/04/05 Python
PyQt5实现拖放功能
2018/04/25 Python
高中地理教学反思
2014/01/29 职场文书
《云房子》教学反思
2014/04/20 职场文书
三分钟英语演讲稿
2014/04/24 职场文书
党建工作先进材料
2014/05/02 职场文书
法人委托书范本
2014/09/15 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
导游词之安徽九华山
2019/09/18 职场文书
pytorch实现线性回归以及多元回归
2021/04/11 Python
python 自动刷新网页的两种方法
2021/04/20 Python
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript