python进阶之tkinter模块
tkinter 是 Python 的标准图形用户界面(GUI)工具包,用于创建桌面应用程序的用户界面。tkinter 提供了一组丰富的组件和工具,使开发者能够轻松地构建具有按钮、标签、文本框、滚动条等元素的交互式应用程序。
以下是 tkinter 模块的一些主要作用:
创建窗口:tkinter 提供了创建窗口的方法,开发者可以通过 Tk() 类创建主窗口,并在窗口中添加各种组件。
添加组件:tkinter 提供了多种组件,如按钮(Button)、标签(Label)、文本框(Entry)、滚动条(Scrollbar)等,开发者可以将这些组件添加到窗口中,构建用户界面。
布局管理:tkinter 提供了不同的布局管理器,如包(Pack)、网格(Grid)、place 等,开发者可以使用这些布局管理器来控制组件在窗口中的位置和大小。
响应事件:tkinter 允许开发者为组件绑定事件处理函数,例如点击按钮时触发的事件,用户输入文本时触发的事件等。
绘制图形:tkinter 支持绘制简单的图形元素,如直线、矩形、椭圆等,开发者可以使用这些功能来实现一些简单的绘图功能。
总的来说,tkinter 是一个功能强大且易于学习的工具包,适用于快速开发简单的桌面应用程序。虽然在功能和外观上有一些限制,但对于许多小型项目和原型设计来说,tkinter 是一个非常有用的工具。如果您想要开发简单的桌面应用程序,tkinter 是一个很好的选择。
一、窗口初始化
1、 首先导入tkinter模块,win系统通常情况下python已经自带了,
from tkinter import *
import tkinter as tk
2、 初始化可视化窗口界面
root = Tk()
root.title(‘title name’) # 窗口的标签自定义
root.geometry(‘600x500’)# 窗口的宽高
# 内容放到这里
root.mainloop()# 窗口持续运行函数
二、窗口加载内容
文本写入和文本框显示
Label函数用于文本显示
使用方式
tk.Label(root, text = ‘text name’).place(x = 0, y = 0)# xy = 文本在窗口的位置
Entry函数用于文本框显示
使用方式
entry_noe_1 = tk.Entry(root, width = 30, bd = 3)# width长度,bd深度
entry_noe_1.pack()
entry_noe_1.place(x = 90, y = 0) # 文本框位于窗口的位置
entry_noe_1.insert(tk.END , ‘test’) # 文本框默认显示参数
三、日志窗口和显示
ScrolledText函数/需要载入模块 from tkinter.scrolledtext import ScrolledText
使用方式
Scrolled_one_1 = ScrolledText(root . bd = 2, relief = ‘solid’ , width = 70, height = 30)
Scrolled.place(x = 0, y = 120)
日志写入使用insert函数
Scrolled_one_1.insert(END , ‘这里写入日志的参数’)
四、执行按钮和执行返回
1、执行需要的操作,在下方定义一个执行函数
def GetResult(Insert):
e = int(Insert) + 5 # 文本框输入默认是str类型,传入数字需要转换int
return e
2、 窗口内部定义执行体
def Exceut_Result():
ReadTables_1 = entry_noe_1.get() # 获取文本框输入的参数
Exceut = GetResult(ReadTables_1) # 调用外部执行函数
# 创建执行按钮
Button_Exceut = Button(root , text = ‘执行按钮’, command = Exceut_Result )
Button_Exceut.pack()
Button_Exceut.place(x = 10 , y = 65)
五、整体脚本
import datetime
from tkinter import *
import tkinter as tk
from tkinter.scrolledtext import ScrolledText
from tkinter import ttk
def tke():
# 初始化整个显示界面
window = Tk()
window.title("tkinter")
window.geometry("600x560")
# 创建Notebook组件
notebook = ttk.Notebook(window)
# 创建多个选项卡
tab1 = tk.Frame(notebook)
tab2 = tk.Frame(notebook)
tab3 = tk.Frame(notebook)
notebook.add(tab1, text='第一页')
# 读取目录test/train/val
tk.Label(tab1, text="text name").place(x= 0, y= 0)
ReadTable1 = tk.Entry(tab1, width = 30, bd = 3)
ReadTable1.pack()
ReadTable1.place(x = 90, y = 0)
ReadTable1.insert(tk.END, "test")
tk.Label(tab1, text="消息窗口:").place(x=3, y=100)
text1_1 = ScrolledText(tab1, bd=2, relief="solid", width=75, height=30)
text1_1.place(x=0, y=120)
def Exceut_Result():
ReadTables_1 = ReadTable1.get()
text1_1.insert(END, "输入数据:" + str(ReadTables_1))
text1_1.insert(END, "\n" )
Exceut = GetResult(ReadTables_1)
text1_1.insert(END, "执行函数返回结果:" + str(Exceut))
text1_1.insert(END, "\n" )
Button_Exceut = Button(tab1, text="执行按钮", command=Exceut_Result)
Button_Exceut.pack()
Button_Exceut.place(x=10, y=65)
# 将Notebook组件放置在主窗口中
notebook.pack(expand=1, fill='both')
window.mainloop()
def GetResult(Insert):
e = int(Insert) + 5
return e
if __name__ == '__main__':
tke()
Read More