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模拟新浪微博登陆功能(新浪微博爬虫)
Dec 24 Python
python实现简单socket通信的方法
Apr 19 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
python+Splinter实现12306抢票功能
Sep 25 Python
python实现顺时针打印矩阵
Mar 02 Python
Django文件存储 自己定制存储系统解析
Aug 02 Python
Python PyInstaller安装和使用教程详解
Jan 08 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
Feb 16 Python
django 读取图片到页面实例
Mar 27 Python
Python退出时强制运行一段代码的实现方法
Apr 29 Python
Python Mock模块原理及使用方法详解
Jul 07 Python
解决pycharm 格式报错tabs和space不一致问题
Feb 26 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
2017/05/04 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
Python线程详解
2015/06/24 Python
Python实现多线程抓取妹子图
2015/08/08 Python
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
2019/05/04 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
2019/09/07 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
nohup的用法
2012/11/26 面试题
初中物理教学反思
2014/01/14 职场文书
食品行业求职人的自我评价
2014/01/19 职场文书
高中军训感言500字
2014/02/24 职场文书
实习生岗位职责
2014/04/12 职场文书
城管大队整治方案
2014/05/06 职场文书
音乐教师求职信
2014/06/28 职场文书
质量整改报告范文
2014/11/08 职场文书
Python开发简易五子棋小游戏
2022/05/02 Python