Tkinter Designer
- Tkinter
- Tkinter Designer介绍
- Tkinter Designer使用
- 🛠 安装 Tkinter Designer
- 示例
Tkinter
先来看一段tkinter例子
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from tkinter import *
import hashlib
import time
LOG_LINE_NUM = 0
class MY_GUI():
def __init__(self,init_window_name):
self.init_window_name = init_window_name
#设置窗口
def set_init_window(self):
self.init_window_name.title("文本处理工具_v1.2") #窗口名
#self.init_window_name.geometry('320x160+10+10') #290 160为窗口大小,+10 +10 定义窗口弹出时的默认展示位置
self.init_window_name.geometry('1068x681+10+10')
#self.init_window_name["bg"] = "pink" #窗口背景色,其他背景色见:blog.csdn.net/chl0000/article/details/7657887
#self.init_window_name.attributes("-alpha",0.9) #虚化,值越小虚化程度越高
#标签
self.init_data_label = Label(self.init_window_name, text="待处理数据")
self.init_data_label.grid(row=0, column=0)
self.result_data_label = Label(self.init_window_name, text="输出结果")
self.result_data_label.grid(row=0, column=12)
self.log_label = Label(self.init_window_name, text="日志")
self.log_label.grid(row=12, column=0)
#文本框
self.init_data_Text = Text(self.init_window_name, width=67, height=35) #原始数据录入框
self.init_data_Text.grid(row=1, column=0, rowspan=10, columnspan=10)
self.result_data_Text = Text(self.init_window_name, width=70, height=49) #处理结果展示
self.result_data_Text.grid(row=1, column=12, rowspan=15, columnspan=10)
self.log_data_Text = Text(self.init_window_name, width=66, height=9) # 日志框
self.log_data_Text.grid(row=13, column=0, columnspan=10)
#按钮
self.str_trans_to_md5_button = Button(self.init_window_name, text="字符串转MD5", bg="lightblue", width=10,command=self.str_trans_to_md5) # 调用内部方法 加()为直接调用
self.str_trans_to_md5_button.grid(row=1, column=11)
#功能函数
def str_trans_to_md5(self):
src = self.init_data_Text.get(1.0,END).strip().replace("\n","").encode()
#print("src =",src)
if src:
try:
myMd5 = hashlib.md5()
myMd5.update(src)
myMd5_Digest = myMd5.hexdigest()
#print(myMd5_Digest)
#输出到界面
self.result_data_Text.delete(1.0,END)
self.result_data_Text.insert(1.0,myMd5_Digest)
self.write_log_to_Text("INFO:str_trans_to_md5 success")
except:
self.result_data_Text.delete(1.0,END)
self.result_data_Text.insert(1.0,"字符串转MD5失败")
else:
self.write_log_to_Text("ERROR:str_trans_to_md5 failed")
#获取当前时间
def get_current_time(self):
current_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
return current_time
#日志动态打印
def write_log_to_Text(self,logmsg):
global LOG_LINE_NUM
current_time = self.get_current_time()
logmsg_in = str(current_time) +" " + str(logmsg) + "\n" #换行
if LOG_LINE_NUM <= 7:
self.log_data_Text.insert(END, logmsg_in)
LOG_LINE_NUM = LOG_LINE_NUM + 1
else:
self.log_data_Text.delete(1.0,2.0)
self.log_data_Text.insert(END, logmsg_in)
def gui_start():
init_window = Tk() #实例化出一个父窗口
ZMJ_PORTAL = MY_GUI(init_window)
# 设置根窗口默认属性
ZMJ_PORTAL.set_init_window()
init_window.mainloop() #父窗口进入事件循环,可以理解为保持窗口运行,否则界面不展示
gui_start()
该例子来源于菜鸟教程Tkinter 编程 通过代码可知,我们需要自己一步一步装饰窗口,窗口的位置、展示都需要头疼很久。
Tkinter Designer介绍
Tkinter Designer 旨在加速 Python 中的 GUI 开发过程。 它使用著名的设计软件 Figma 使在 Python 中创建漂亮的 Tkinter GUI 变得轻而易举。
Tkinter Designer 使用 Figma API 来分析设计文件并创建 GUI 所需的python代码和静态文件。
甚至 Tkinter Designer 的 GUI(上图) 也是使用 Tkinter Designer 创建的。
废话不多说我们来一步一步实践,来生成我们想要的tkinter的python代码。
Tkinter Designer使用
🛠 安装 Tkinter Designer
git clone https://github.com/ParthJadhav/Tkinter-Designer
cd Tkinter-Designer
pip3 install -r requirements.txt
python3 tkinter_designer.py
此时出现Tkinter Designer的GUI窗口。
分别有三个填写框:
- tokenID
Figma账户里生成的tokenID(记得注册哦)
位置:账户头像-Settings-Account-Personal access tokens
填写后,复制生成的token填写进Tkinter Designer去 - FileUrl
画好GUI图后分享复制链接,填写进Tkinter Designer去
注意:
画的GUI的Figma 元素名称是需要重命名的,这样生成的python代码才是正确的,Tkinter Designer里根据元素名称来生成对应“挂件”
Figma Element Name:改名成这列的元素对象 | Tkinter Element |
Button | Button |
Rectangle | Rectangle |
TextArea | Text Area |
TextBox | Entry |
Background | Canvas.Image() |
例如:
- Output Path
输出的代码目录
最后点击生成,等待一会就可以看到输出目录多了一个文件夹
直接执行window.py就会展示你的作品GUI哦
示例
示例1:
示例2: