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 相关文章推荐
paramiko模块安装和使用(远程登录服务器)
Jan 27 Python
Python中单例模式总结
Feb 20 Python
python3.4.3下逐行读入txt文本并去重的方法
Apr 29 Python
Python 字符串与二进制串的相互转换示例
Jul 23 Python
对Python实现简单的API接口实例讲解
Dec 10 Python
10招!看骨灰级Pythoner玩转Python的方法
Apr 15 Python
Pandas+Matplotlib 箱式图异常值分析示例
Dec 09 Python
python读写文件write和flush的实现方式
Feb 21 Python
如何用python批量调整视频声音
Dec 22 Python
Python创建自己的加密货币的示例
Mar 01 Python
pytorch 如何把图像数据集进行划分成train,test和val
May 31 Python
pytorch 运行一段时间后出现GPU OOM的问题
Jun 02 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
php Smarty初体验二 获取配置信息
2011/08/08 PHP
浅析php header 跳转
2013/06/17 PHP
PHP中isset()和unset()函数的用法小结
2014/03/11 PHP
php注册登录系统简化版
2020/12/28 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
js获取div高度的代码
2008/08/09 Javascript
来自qq的javascript面试题
2010/07/24 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
coffeescript使用的方式汇总
2015/08/05 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
React事件处理的机制及原理
2018/12/03 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
2019/04/23 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
韩国女装NO.1网店:STYLENANDA
2016/09/16 全球购物
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
几个Shell Script面试题
2012/08/31 面试题
校园餐饮创业计划书
2014/01/10 职场文书
2014年大学庆元旦迎新年活动方案
2014/03/09 职场文书
党组织公开承诺书
2014/03/29 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
MySQL update set 和 and的区别
2021/05/08 MySQL