Python_tkinter(3)_grid布局
2024-09-28 10:36:20
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()
最新文章
- C++:通过gethostbyname函数,根据服务器的域名,获取服务器IP
- Powershell脚本执行权限
- 电脑桌面 IE 图标删除不了的解决方法
- Eclipse安装Freemarker插件
- Dos学习笔记(1)dir命令
- C语言学习017:malloc和free
- Qt 控件随窗口缩放
- Why your Games are Unfinished, and What To Do About It (转)
- elasticsearch使用jetty进行简单的权限控制
- 35. leetcode 501. Find Mode in Binary Search Tree
- NYOJ 67 三角形面积(线代,数学)
- android 原生camera——设置模块修改
- LeetCode第十题-正则表达式匹配
- redis-trib.rb命令详解
- linux下安装oh-my-zsh
- swift 学习- 23 -- 扩展
- js控制easyui文本框例子及控制html例子
- 如何把jar包发布到maven私服
- JVM 加载class文件的原理
- hdu1272小希的迷宫(并查集判断回路和是否连通)
热门文章
- Linux 之 rsyslog+mysql+LogAnalyzer 日志收集系统
- 【easy】111. Minimum Depth of Binary Tree求二叉树的最小深度
- Apache JMeter压力测试实例
- liunx 下WebBench 安装与压力测试
- LMerge-github
- Linux系统xinetd服务启动不了
- javascript事件委托的原理与实现
- C++中几个输入函数的用法和区别(cin、cin.get()、cin.getline()、getline()、gets()、getchar())
- iOS开发之#impor与#include的区别
- Spring Boot整合邮件发送