Grid(网格)布局管理器,是Tkinter里面最灵活的几何管理布局器。注意:不要试图在一个主窗口中混合使用pack和grid。

1.简单的布局

from tkinter import *
root = Tk()
label1 = Label(root, text="用户名:")
label2 = Label(root, text="密码:")
entry1 = Entry(root)
entry2 = Entry(root)
label1.grid(row=0, padx='10', pady='10')
label2.grid(row=1)
entry1.grid(row=0, column=1, padx='10', pady='10')
entry2.grid(row=1, column=1, padx='10', pady='10')
mainloop()

运行结果

说明:

(1) label1没写column属性,默认从0开始

(2) padx 控件与外边框的水平距离;ipadx 控件内文字与控件边框的距离;pady/ipady同理

2. 对齐方式sticky、合并行rowspan、合并列columnspan

from tkinter import *

root = Tk()
label1 = Label(root, text="用户名:")
label2 = Label(root, text="密码:")
entry1 = Entry(root)
entry2 = Entry(root)
btn1 = Button(root, text="登 录", width='') label1.grid(row=0, sticky=E, padx='')
label2.grid(row=1, sticky=E, padx='')
entry1.grid(row=0, column=1, padx='', pady='')
entry2.grid(row=1, column=1, padx='', pady='')
btn1.grid(row=2, column=0, columnspan=2, pady='')
mainloop()

运行效果:

说明

(1) sticky可选的值:N/S/E/W,分别代表上/下/左/右。sticky=E表示靠右显示。

(2) columnspan合并列

3.frame结合grid布局

对稍复杂的布局,网格实现起来费劲的话考虑外层加frame

from tkinter import *

root = Tk()

frm = Frame(root)
frm.grid(padx='', pady='')
frm_left = Frame(frm)
frm_left.grid(row=0, column=0, padx='', pady='')
frm_right = Frame(frm)
frm_right.grid(row=0, column=1, padx='', pady='') btn_left1 = Button(frm_left, text='按 钮 1')
btn_left1.grid(row=0, pady='', ipadx='', ipady='')
btn_left2 = Button(frm_left, text='按 钮 2')
btn_left2.grid(row=1, pady='', ipadx='', ipady='')
btn_left3 = Button(frm_left, text='按 钮 3')
btn_left3.grid(row=2, pady='', ipadx='', ipady='')
btn_left4 = Button(frm_left, text='按 钮 4')
btn_left4.grid(row=3, pady='', ipadx='', ipady='') btn_right1 = Button(frm_right, text='按 钮 5')
btn_right1.grid(row=0, column=0, ipadx='', ipady='')
btn_right2 = Button(frm_right, text='按 钮 6')
btn_right2.grid(row=0, column=1, ipadx='', ipady='')
txt_right = Text(frm_right, width='', height='')
txt_right.grid(row=1, column=0, columnspan=2, pady='')
root.mainloop()

最新文章

  1. C++:通过gethostbyname函数,根据服务器的域名,获取服务器IP
  2. Powershell脚本执行权限
  3. 电脑桌面 IE 图标删除不了的解决方法
  4. Eclipse安装Freemarker插件
  5. Dos学习笔记(1)dir命令
  6. C语言学习017:malloc和free
  7. Qt 控件随窗口缩放
  8. Why your Games are Unfinished, and What To Do About It (转)
  9. elasticsearch使用jetty进行简单的权限控制
  10. 35. leetcode 501. Find Mode in Binary Search Tree
  11. NYOJ 67 三角形面积(线代,数学)
  12. android 原生camera——设置模块修改
  13. LeetCode第十题-正则表达式匹配
  14. redis-trib.rb命令详解
  15. linux下安装oh-my-zsh
  16. swift 学习- 23 -- 扩展
  17. js控制easyui文本框例子及控制html例子
  18. 如何把jar包发布到maven私服
  19. JVM 加载class文件的原理
  20. hdu1272小希的迷宫(并查集判断回路和是否连通)

热门文章

  1. Linux 之 rsyslog+mysql+LogAnalyzer 日志收集系统
  2. 【easy】111. Minimum Depth of Binary Tree求二叉树的最小深度
  3. Apache JMeter压力测试实例
  4. liunx 下WebBench 安装与压力测试
  5. LMerge-github
  6. Linux系统xinetd服务启动不了
  7. javascript事件委托的原理与实现
  8. C++中几个输入函数的用法和区别(cin、cin.get()、cin.getline()、getline()、gets()、getchar())
  9. iOS开发之#impor与#include的区别
  10. Spring Boot整合邮件发送