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 相关文章推荐
Python3基础之函数用法
Aug 13 Python
python基础之入门必看操作
Jul 26 Python
Python+tkinter使用80行代码实现一个计算器实例
Jan 16 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
Feb 18 Python
在pandas中一次性删除dataframe的多个列方法
Apr 10 Python
Python实现App自动签到领取积分功能
Sep 29 Python
python多线程共享变量的使用和效率方法
Jul 16 Python
Python3视频转字符动画的实例代码
Aug 29 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
Nov 19 Python
pycharm运行程序时看不到任何结果显示的解决
Feb 21 Python
python中pop()函数的语法与实例
Dec 01 Python
Python+tkinter实现高清图片保存
Mar 13 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
网友原创的PHP模板类代码
2008/09/07 PHP
php实现设计模式中的单例模式详解
2014/10/11 PHP
php模拟post提交数据的方法
2015/02/12 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
jQuery ajax MD5实现用户注册即时验证功能
2016/10/11 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
js实现拖拽功能
2017/03/01 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
Python检测网站链接是否已存在
2016/04/07 Python
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
python读取excel表格生成erlang数据
2017/08/26 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
python 输出上个月的月末日期实例
2018/04/11 Python
python中pow函数用法及功能说明
2020/12/04 Python
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
南京某软件公司的.net面试题
2015/11/30 面试题
项目考察欢迎辞
2014/01/17 职场文书
日本语毕业生自荐信
2014/02/01 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
村党支部书记承诺书
2014/05/29 职场文书
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL