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 模块创建窗体,代码如下截图: 运行结果,如有右图显 ...
随机推荐
- Python3 NameError: name 'open' is not defined处理办法
一.说明 之前默认以为python的open方法用存哪里都没什么区别的,然后昨天直接在"__del__()"中使用今天同事跑程序时反馈程序报错“Python3 NameError: ...
- s6k0:一种输入法分词关联模型演示
实现:用kotlin.但是考虑到习惯问题,需要借助akka实现erlang的actor,以及rx.java 需求:略 预计:最快两周 保守估计时间:2019年3月左右 优先级:低 加速方法:打饭钱 赞 ...
- dom 及bom
BOM的全称为Browser Object Mode,中文名是浏览器对象模型.它的一些功能和特性如下:1. BOM提供了独立于内容而与浏览器窗口进行交互的对象2. 由于BOM主要用于管理窗口与窗口之间 ...
- python运算符与数据类型
python运算符 Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 运算符优先级 以下假设变量: a=10,b=20: ...
- bash配色
Table of Contents PS1格式 基本格式 其它可能的格式 PS1配色方案 配置文件 bash的命令提示符和终端外观由环境变量PS1定义 PS1格式 基本格式 \u 显示当前用户名 \h ...
- CSS3动画与JS动画的优缺点?
JS动画: 缺点:1.JS在浏览器的主线程中运行,而主线程还有其他的js脚本,样式布局,绘制任务等,对其干扰可能导致线程出现阻塞,从而造成丢帧的情况. 2.JS动画代码复杂度高于CSS3动画. 优点: ...
- Ubuntu 18.04安装中文输入法
reference: https://blog.csdn.net/fx_yzjy101/article/details/80243710 https://pinyin.sogou.com/linux/ ...
- 字符串及其操作,字符的Unicode编码
plainText=input('message:') for c in plainText: print(chr(ord(c)-3),end='') plainText=input('message ...
- spring-boot整合mybatis(web mysql logback配置)
pom.xml相关的配置说明. 配置文件看着比价多,在创建spring-boot项目的时候,自需要添加web,mysql,mybatis三个选项即可 <?xml version="1. ...
- tp5.0中使用PHPexcel,以及Loader的一些问题
在5.0中使用PHPexcel遇到一些问题,记录一下方便以后查看. 非使用PHPexcel的方法: 参考:http://blog.csdn.net/sinat_35861727/article/det ...