目录
最近需要用tkinter库写要给软件界面,之前一直用的wxpython,那个借助软件可以直接画界面,比较简单。所以这次需要用tkinter来写我就得学习一下了,下面直接贴出的代码以及比较好的一些博客或者其它网站教程。
第一个界面(包含基础组件使用):
第二个界面(Frame使用):
第一个界面代码(包含基础组件使用):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/12/16 15:21
# @Author : ystraw
# @Site :
# @File : main.py
# @Software: PyCharm Community Edition
# @function: 计算能力训练系统
import tkinter as tk # 导入tkinter模块
if __name__ == '__main__':
# 创建一个窗口
root = tk.Tk()
# 设置窗口最小大小
root.minsize(600, 470)
root.resizable(0, 0) # 来禁止调节大小
# 设置标题
root.title('计算能力训练系统')
# 标签学习
longtext = '标签1'
# w = tk.Label(root,text=longtext, font=('微软雅黑', 20), bg='red', bd='9', fg='black', anchor='se')
# 设置普通值,longtext改变,label值不变
w = tk.Label(root, text=longtext)
# 设置位置(x,y为横纵坐标;w,h为组件的宽和高)
w.place(x=70, y=170, width=80, height=20)
longtext2 = tk.StringVar()
longtext2.set('标签2-1')
# 设置普通值,longtext2改变,label值自动变化
w2 = tk.Label(root, textvariable=longtext2)
longtext2.set('标签2-2')
# 设置位置
w2.place(x=170, y=170, width=80, height=30)
# 另外leber, Entry都有after函数,类似计时函数
def trickit():
print('w2计时一秒!!!')
w2.after(1000, trickit) # 1秒后执行trickit函数
# 单行输入框学习
e = tk.Entry(root, width=15) # 注意,输入框就是单行文本,它是没有height属性的
# 设置位置
e.place(x=270, y=170, width=80, height=30)
# 实现删除输入框的所有内容
e.delete(0, "end")
# 设置默认文本
e.insert(0, "默认文本hhhhhhh...")
# e.configure(state='readonly') # 改为只读
# 按钮button学习
# button绑定的监听函数
def show():
print("单行文本框的值:%s" % e.get())
e.delete(0, "end")
bt = tk.Button(root, text="获取信息", width=10, command=show).grid(row=3, column=0, sticky="w", padx=10, pady=5)
# 保持窗口
root.mainloop()
第二个界面代码(Frame使用):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/12/16 15:43
# @Author : ystraw
# @Site :
# @File : test2.py
# @Software: PyCharm Community Edition
# @function:
import tkinter, sys,time
root= tkinter.Tk()
root.minsize(500, 500)
# Frame 框架控件;在屏幕上显示一个矩形区域,多用来作为容器
frame1 = tkinter.Frame(root, background='red', width=400, height=200)
frame1.pack(padx=5, pady=5)
# 在framel1中加一个标签
longtext = '标签1'
# 设置普通值,longtext改变,label值不变
w = tkinter.Label(frame1, text=longtext)
# 设置位置(x,y为横纵坐标;w,h为组件的宽和高)
w.place(x=0, y=170, width=80, height=20)
frame2 = tkinter.Frame(root, background='green', width=450, height=300)
frame2.pack(padx=5, pady=5)
# 在framel1中加一个标签
longtext2 = '标签2'
# 设置普通值,longtext改变,label值不变
w = tkinter.Label(frame2, text=longtext2)
# 设置位置(x,y为横纵坐标;w,h为组件的宽和高)
w.place(x=10, y=10, width=80, height=20)
root.mainloop()
组件的三种布局:
一个程序中,只能使用一种布局,否则会报错误。
几何方法 | 描述 |
pack() | 包装; |
grid() | 网格; |
place() | 位置; |
参考文章:
利用Tkinter(python3.6)实现一个简单计算器
Tkinter详解(推荐!!!)
Python GUI编程(Tkinter)