python之tkinter使用-Grid(网格)布局管理器

 1 # 使用tkinter编写登录窗口
 2 # Grid(网格)布局管理器会将控件放置到一个二维的表格里,主控件被分割为一系列的行和列
 3 # stricky设置对齐方式,参数N/S/W/E分别表示上、下、左、右
 4 # columnspan:指定控件跨越多列显示
 5 # rowspan:指定控件跨越多行显示
 6 # padx、pady分别设置横向和纵向间隔大小
 7
 8 import tkinter as tk
 9
10 root = tk.Tk()
11 root.title("请登录")
12
13
14 def reg():
15     ‘‘‘登录校验‘‘‘
16     username = e_user.get()
17     passwd = e_pwd.get()
18     len_user = len(username)
19     len_pwd = len(passwd)
20     if username == ‘admin‘ and passwd == ‘123‘:
21         l_msg[‘text‘] = ‘登录成功!‘
22         l_msg[‘fg‘] = ‘green‘
23     else:
24         l_msg.configure(text=‘登录失败!‘, fg=‘red‘)
25     # e_user.delete(0, len_user)  # 清空输入框
26     e_pwd.delete(0, len_pwd)
27
28
29 # 登录结果提示
30 l_msg = tk.Label(root, text=‘‘)
31 l_msg.grid(row=0, columnspan=2)  # 跨越两列显示
32
33 # 第一行用户名输入框
34 l_user = tk.Label(root, text=‘用户名:‘)
35 l_user.grid(row=1, sticky=tk.W)
36 e_user = tk.Entry(root)
37 e_user.grid(row=1, column=1, sticky=tk.E, padx=3)
38
39 # 第二行密码输入框
40 l_pwd = tk.Label(root, text=‘密码:‘)
41 l_pwd.grid(row=2, sticky=tk.E)
42 e_pwd = tk.Entry(root)
43 e_pwd[‘show‘] = ‘*‘  # 隐藏显示
44 e_pwd.grid(row=2, column=1, sticky=tk.E, padx=3)
45
46 # 第三行登录按钮
47 f_btn = tk.Frame(root)
48 b_login = tk.Button(f_btn, text=‘登录‘, width=6, command=reg)
49 b_login.grid(row=0, column=0)
50 b_cancel = tk.Button(f_btn, text=‘取消‘, width=6, command=root.quit)
51 b_cancel.grid(row=0, column=1)
52 f_btn.grid(row=3, columnspan=2, pady=10)
53
54 root.mainloop()
55
56 # 原始按钮布局
57 # b_login = tk.Button(root, text=‘登录‘, command=reg)
58 # b_login.grid(row=3, column=1, sticky=tk.W, pady=10)
59 # b_cancel = tk.Button(root, text=‘取消‘, command=root.quit)
60 # b_cancel.grid(row=3, column=1)

截图:

时间: 2024-09-29 23:30:37

python之tkinter使用-Grid(网格)布局管理器的相关文章

JAVA 网格布局管理器

//网格布局管理器 import java.awt.*; import javax.swing.*; public class Jiemian3 extends JFrame{ //定义组件 JButton[] an = {null,null,null,null,null,null,null,null}; public static void main(String[] args){ //运行本类的构造方法 Jiemian3 jiemian = new Jiemian3(); } public

Python基础=== Tkinter Grid布局管理器详解

本文转自:https://www.cnblogs.com/ruo-li-suo-yi/p/7425307.html          @ 箬笠蓑衣 Grid(网格)布局管理器会将控件放置到一个二维的表格里.主控件被分割成一系列的行和列,表格中的每个单元(cell)都可以放置一个控件. 注意:不要试图在一个主窗口中混合使用pack和grid (1)标签控件 1 from tkinter import * 2 3 tk=Tk() 4 #标签控件,显示文本和位图,展示在第一行 5 Label(tk,t

QT开发(二十一)——QT布局管理器

QT开发(二十一)--QT布局管理器 一.布局管理器简介 QT中使用绝对定位的布局方式无法自适应窗口的变化. QT中提供了对界面组件进行布局管理的类,用于对界面组件进行管理,能够自动排列窗口中的界面组件,窗口大小变化后自动更新界面组件的大小. QLayout是QT中布局管理器的抽象基类,通过对QLayout的继承,实现了功能各异且互补的布局管理器. 布局管理器不是界面组件,而是界面组件的定位策略. 任意容器类型的组件都可以指定布局管理器. 同一个布局管理器管理中的组件拥有相同的父组件,在设置布局

JAVA GUI布局管理器

边界布局管理器: a.布局方式:是把整个容器划分为五个部分.东西南北中,南北要贯通,中间最大 (不仅是中间的范围最大,权利也最大)当周边不存在的时候中间会占领周边,当中间不存在的时候周边不能占据中间 b.使用场景:不是用来直接放组件,而是用来放置子容器(中间容器)的 流布局管理器 : FlowFrame a.布局方式:是按从左往右,从上往下,由中间开始的方式依次排放组件,组件大小根据组件内容确定,组件的位置会随着容器大小的改变而改变 b.使用场景:用来放置组件,而不是用来放中间容器,流布局最好只

Java之GUI编程(二)——布局管理器

在上篇博客Java之GUI编程(一)中我已经对GUI编程的组件和事件做了简单介绍了,现在来看看另外一部分关于组件在各个平台是如何做到仍能保持自己合理的位置大小以及外观的. 已经说了Java是跨平台运行的,但是不同的平台对于点及坐标的定义不完全相同.而且屏幕的解析度分辨率不同也会造成位置的变化,为了确保每个组件的相对位置和大小以及外观,java就设计了布局管理器. 布局管理器是对容器中的元素进行管理,按照一定的规则排放容器里面的元素.它控制了组件的摆放. 布局管理器分类: FlowLayout:浮

Qt 布局管理器

在一个颜值当道的今天,无论买衣服,买车还是追星,颜值的高低已经变成了大家最看重的(不管男性女性都一样,千万别和我说你不是):而对于程序猿来说,开发一款软件,不再只注重逻辑和稳定性,美观和用户友好性也是我们不得不关注的一个重点了. 我们进入正题,今天主要和大家分享一下Qt方面关于布局管理器的使用: 一.基本概念   Qt 提供了几种在窗口部件上管理子窗口部件的基本方式.一共有3 种方法用于管理窗体上子窗口部件的布局:绝对位置法.人工布局法和布局管理器法.相比于使用固定尺寸和位置,布局提供了功能强大

AWT布局管理器

布局管理器 容器内可以存放各种组件,而组件的位置和大小是由容器内的布局管理器来决定的.在AWT中为我们提供了以下5种布局管理器: ①   FlowLayout 流式布局管理器 ②   BorderLayout 边界布局管理器 ③   GridLayout 网格布局管理器 ④   CradLayout 卡片布局管理器 ⑤   GridBagLayout 网格包布局管理器 容器中组件的布局通常由布局管理器控制.每个Container(比如一个Panel或一个Frame)都有一个与他相关的缺省布局管理

java基础 布局管理器

概念: 组建在容器(比如JFrame)中的位置和 大小 是由布局管理器来决定的.所有的容器都会使用一个布局管理器,通过它来自动进行组建的布局管理. 种类: java共提供了物种布局管理器:流式布局管理器(FlowLayout),边界布局管理器(BorderLayout),网络布局管理器(GridLayout),卡片布局管理器(CardLayout),网格布局管理器(GridBagLayout).其中前三种是最常见的布局管理器. 一.  边界布局管理器 边界布局管理器 BorderLayout 注

JAVA学习笔记(四十五) - 布局管理器

FlowLayout流式布局管理器 /* * FlowLayout流式布局管理器 */ public class Test03 { public static void main(String[] args) { Frame frame=new Frame("My Frame"); Button btn1=new Button("按钮1"); Button btn2=new Button("按钮2"); Button btn3=new Butto