CodePad系列之-Tkinter窗体
Codepad系列是将自己用过的一些小功能代码段记录下来,便于后续查找使用,是一个代码备忘录系列。
本文简单记录在用Tkinter开发GUI窗体时一些简单的代码段,以便后续使用。官方文档地址
- Hello world
任务: 创建并打开一个窗体,设置窗体的大小,最简单的代码仅需3行。
from Tkinter import *
root = Tk() #创建窗口对象
root.mainloop() #运行窗口对象
除此之外,针对窗口有许多丰富的操作,详细可以在官网上查询,这里只列出我实际应用过程中用到的。如:
- 设置窗口大小
root.maxsize(80*8,650)
root.minsize(80*8,650)
- 设置固定窗口大小
root.resizable(width=False, height=False)
- 自定义关闭按钮(即窗口页面的‘×’)
# 其中destory_window 为自定义的对应的调用函数,
root.protocol('WM_DELETE_WINDOW', destory_window)
# 如果需要传入参数,则用lambda的方式
root.protocol('WM_DELETE_WINDOW', lambda: destory_window(arg1,arg2))
- 窗口设为置顶
root.wm_attributes('-topmost',1)
- 插入label控件
label_top = Label(root, text=u"标签名称", font=('Arial', 25))
label_top.grid(row=0, column=1, columnspan=1)
- 使用grid对页面布局
button1 = Button(self.root, text='按钮1', command = func1)
button2 = Button(self.root, text='按钮2', command = func2)
button3 = Button(self.root, text='按钮3', command = func3)
button4 = Button(self.root, text='按钮4', command = func4)
button1.grid(row=0,column=0)
button2.grid(row=0,column=2)
button3.grid(row=1,column=1)
button4.grid(row=1,column=3)
- 登录界面
这里以登录窗口为例,包括“用户名”, “密码”, “确认”按钮。
# -*- coding:utf-8 -*-
from Tkinter import *
def check_login(uname,passwd):
print uname
print passwd
root = Tk()
var_user = StringVar()
var_user.set("用户名默认值")
label_user = Label(root, text=u'用户名')
entry_user = Entry(root, textvariable=var_user)
label_user.grid(row=4,column=0)
entry_user.grid(row=4,column=1, columnspan=2)
var_passwd = StringVar()
var_passwd.set("密码默认值")
label_passwd = Label(root, text=u'密码')
entry_passwd = Entry(root, textvariable=var_passwd, show="*")
label_passwd.grid(row=5,column=0)
entry_passwd.grid(row=5,column=1, columnspan=2)
btn_submit = Button(root, text="登录", command = lambda: check_login(var_user.get(),var_passwd.get()))
btn_close = Button(root, text="取消", command = root.destroy)
btn_submit.grid(row=6, column=0)
btn_close.grid(row=6, column=2)
root.mainloop()
这里需要特别注意的有,如果登录窗口是从另一个窗口触发,且需要回到上一级窗口去处理对于的参数时,要将登录窗口由 Tk() 改为 Toplevel(),否则页面修改的参数没法自动刷新。简单的说,如果发现默认值设置没生效,而且确定后没有使用在文本输入的值,就试下把 Tk() 改成 Toplevel() 吧。
- 设置文本框只读
除了上面登录中使用的设置文本框默认值的方法,还有一种方法也可以设置默认值。
note_entry = Entry(root)
note_entry.insert(END, "默认值")
note_entry['state'] = 'readonly'
CodePad系列之-Tkinter窗体的更多相关文章
- WPF学习系列 简单的窗体设置
今天要学习的源码是一个窗体设置.效果如下,可拖拽.这让我想起了vs的启动界面 下面是源码的情况 项目结构: 窗体代码: cs代码 1.新建项目 略 2.设置窗体 AllowsTransparency= ...
- C# JackLib系列之Form窗体的ShowWithoutActivation属性及其作用
代码改变世界! 如果要显示顶级窗口,但又不希望由于将输入焦点从当前窗口移开而中断用户的工作,请使用此属性.它可以是一个信息性弹出窗口或浮动窗口,如“画图”应用程序中的“工具”调色板. 由于此属性为只读 ...
- Python tkinter库将matplotlib图表显示在GUI窗口上,并实时更新刷新数据
代码 1 ''' 2 使用matplotlib创建图表,并显示在tk窗口 3 ''' 4 import matplotlib.pyplot as plt 5 from matplotlib.pylab ...
- Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) JAVA日志的前世今生 .NET MVC采用SignalR更新在线用户数 C#多线程编程系列(五)- 使用任务并行库 C#多线程编程系列(三)- 线程同步 C#多线程编程系列(二)- 线程基础 C#多线程编程系列(一)- 简介
Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 ...
- Dynamics AX 2012 R2 窗体系列 - 在窗体上修改字段时所触发的方法及其顺序
在这个系列里,Reinhard将和大家一起探索在AX的窗体上执行操作时,都会触发窗体.窗体数据源和表上的哪些方法,并且是以怎样的顺序触发的. 这次,我们来看看在窗体上修改或录入数据的情 ...
- ADO.NET学习系列(四)---窗体版的登录小程序
1.需求分析:做一个登录的小程序,基于Winform的窗体小程序.基本要求:登录成功:弹框显示登录成功,登录失败就弹框显示失败. 扩展功能:登录次数超过3次,就”锁定“用户,提示登录错误次数过多,不能 ...
- C#基础系列:开发自己的窗体设计器(PropertyGrid显示中文属性名)
既然是一个窗体设计器,那就应该能够设置控件的属性,设置属性最好的当然是PropertyGrid了,我们仅仅需要使用一个PropertyGrid.SelectedObject = Control就可以搞 ...
- Python3 tkinter基础 TK title 设置窗体的标题
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- python3中 tkinter模块创建window窗体、添加按钮、事务处理、创建菜单等的使用
开始接触桌面图形界面编程,你可以到安装路径 \lib\tkinter 打开__init__.py 文件了解tkinter 1 tkinter 模块创建窗体,代码如下截图: 运行结果,如有右图显 ...
随机推荐
- Java的四个标记接口:Serializable、Cloneable、RandomAccess和Remote接口
一.概述 标记接口是一些没有属性和方法的接口,也是一种设计思想.Java中的一个标记接口表示的的是一种类的特性,实现了该标记接口的类则具有该特性.如实现了Serializable接口的类,表示这个类的 ...
- bzoj4700
题解: cdq分治 先考虑没有人被秒掉的情况 代码: #include<bits/stdc++.h> #define y1 ____y1 ; using namespace std; ty ...
- JS中一些常用的兼容写法
1.滚动条到顶端的距离var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;2.滚动条到左端的距离 ...
- 20190219备份 java spring boot 学习链接(日/英)
Building web applications with Spring Boot and Kotlin https://www.slideshare.net/masuda220/spring-82 ...
- php短信验证码接口接入流程及代码示例
对于绝大部分企业来说,所使用的短信验证码接口都是第三方短信服务商所提供,目前市场上短信服务商有很多,在此向大家推荐一家动力思维乐信,运营13年,值得信赖! 就拿动力思维乐信短信验证码接口为例,详细介绍 ...
- Java——总结
一.编写并运行java程序步骤: 1.编写java源代码 java源代码文件都已java作为扩展名 java代码格式: class 类名{ //主方法} 2.编译,将字符文件编译为字节文件 在dos中 ...
- shell脚本学习总结(不断更新中)
前言:自从大学毕业参加工作以来,接触的开发工作都是在服务端完成,于是接触了比较多的Linux当做开发机使用,或多或少有一些重复性的工作,于是开始琢磨学习一些shell脚本的知识,以便处理这些繁琐的事情 ...
- Vue语法学习第一课——插值
学习关于Vue的插值语法 ① 文本值 : "Mustache"语法,即双大括号 <span>Message:{{msg}}</span> 注:双大括号中的m ...
- oraclesql语句笔记
1. ORA-00947:Not enough values 原因:values没有写足够的值与select()中的字段对应 2.查看一张表中共有多少个字段 select count(*) from ...
- 修改VScode行号区的背景颜色
vs code是相当不错的一个编辑器,现阶段我用来编写nim程序. vs code非常丧心病狂一点就是行号区和编辑区的背景颜色都是一样, 这样会导致要看行首有没有对齐会非常吃力.这个问题让我纠结了非常 ...