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抓取网页正文的源码
Jun 11 Python
python获取指定路径下所有指定后缀文件的方法
May 26 Python
Python处理JSON时的值报错及编码报错的两则解决实录
Jun 26 Python
Python中selenium实现文件上传所有方法整理总结
Apr 01 Python
flask + pymysql操作Mysql数据库的实例
Nov 13 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
django正续或者倒序查库实例
May 19 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
Jul 28 Python
Python如何输出百分比
Jul 31 Python
python实现录音功能(可随时停止录音)
Oct 26 Python
Python使用random模块实现掷骰子游戏的示例代码
Apr 29 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
Jun 05 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
BBS(php & mysql)完整版(二)
2006/10/09 PHP
php fsockopen解决办法 php实现多线程
2014/01/20 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
JS获取计算机mac地址以及IP的实现方法
2014/01/08 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
动态加载js、css的简单实现代码
2016/05/26 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
[01:00:44]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第三局
2016/03/04 DOTA
python时间整形转标准格式的示例分享
2014/02/14 Python
用PyQt进行Python图形界面的程序的开发的入门指引
2015/04/14 Python
Python中threading模块join函数用法实例分析
2015/06/04 Python
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
Python批量发送post请求的实现代码
2018/05/05 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
如何表示python中的相对路径
2020/07/08 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
秋季运动会广播稿大全
2014/02/17 职场文书
小学生保护环境倡议书
2014/05/15 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
高三毕业感言
2015/07/30 职场文书
经典爱情感言
2015/08/03 职场文书
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python
Python 统计序列中元素的出现频度
2022/04/26 Python