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'

最新文章

  1. 汇编实现点亮Led灯(2440)
  2. hdu5175 gcd 求约数
  3. IPHONE 字体加粗
  4. ExtJS4.2学习(11)——高级组件之Grid
  5. onfocus在火狐、ie10浏览器失效解决方法方法
  6. Win10专业版下图片拖到PS无法打开的解决技巧
  7. 字符、字符集、编码,以及它们python中会遇到的一些问题(下)
  8. grpc
  9. webpack code splitting
  10. 后端for循环补充
  11. Hibernate知识点总结(一)
  12. DateTime.Compare(t1,t2)比较两个日期大小
  13. 夯实基础之--new关键字、instanceOf原理
  14. 深入理解C/C++二维数组
  15. spring 和 spring boot 的区别
  16. jquery ajax complete 方法
  17. 用word2016 写CSDN 博客
  18. keil5 配置 stm32f103rc 软件仿真
  19. aop相关术语
  20. C# 怎么获取所有打开的窗体

热门文章

  1. Introduction and use of Cookie and Session(Cookie&Session的介绍和使用)
  2. Oracle Database 11g安装及报错处理(win7)
  3. python模块part1
  4. 对Java中properties类的理解
  5. 8ci
  6. HIbernate常见异常(转载)
  7. Judy Beta 阶段整体计划
  8. springboot-mybatis多数据源以及踩坑之旅
  9. 凯撒密码移位python
  10. python笔记23-模块导入、安装