使用tkinter制作tkinterUI编辑器
前言
我经常使用python写一些带UI的小工具,手写UI感觉有点麻烦,不习惯用pack和grid,想要vs里C#那样拖拽式的UI编辑器,不想使用第三方的库,所以决定自己写一个,这里是汇总篇,以后会随着更新进行修改,目前使用python3.4进行开发,3.6测试过没什么问题。
完整代码上传到了github,可以从这里下载
csdn这里也可以下载,不过这里没有更新记录里面的内容
超链接
1. 关于UI的读取与存储
2. 关于UI读取之后的创建
3. 控件创建续以及第一版编辑器
4. 滚动滑动条的制作
5. 最新的componentProperty.py
6. tabControl控件的制作
7. 属性编辑控件的制作(上)
8. 属性编辑控件的制作(中)
9. 属性编辑控件的制作(下)
10. EditorTree制作
11. 最新的tkinterEditor.xml,tkinterEditor.py,components.py
12. 菜单以及主题
13. 新建ui以及打开ui
14. 选中逻辑以及文件的关闭逻辑
15. 属性的编辑逻辑
16. 控件的创建与删除
17. 工程的创建
18. 一些新功能
19. 嵌入python解释器
20. 重构选中框
21. 事件管理与多重选择管理
一、最终界面预览
二、使用说明
- file菜单new_project(ctrl+p)创建新工程,输入名字和路径进行创建,创建之后会自动打开创建的ui
- 通过快捷按钮创建控件,控件会被创建到选中的父控件中
- file菜单save_gui(ctrl+s)保存ui,下次直接用file菜单open_gui(ctrl+o)打开ui
- 选中控件后可以通过左边的属性编辑框进行编辑,鼠标左键支持直接移动控件,部分控件支持鼠标左键点击右下角然后拖拽改变尺寸
- 鼠标右键控件可以弹出编辑菜单,可以进行删除子控件操作
- 通过左下角的树也可以选中控件
- 编辑完ui后去工程目录执行 工程名.py即可打开之前编辑的ui
- view菜单change_theme可以更改背景颜色
- component_name是控件的名字,这个名字不能重复,首字母不能大写,大写的话下次读取会报错,我懒得处理了
- 创建的子控件的初始背景颜色会根据父控件的背景进行变化,如果父控件是white,子控件是grey,父控件是其他颜色,子控件就是white
- 可以在工程名.py处理自己的逻辑,可以像self.master.children.get(“sonySongListEditor”, None)这样获取子控件来处理自己的逻辑,可以参考这篇记录,这篇记录了编辑器的简单应用
三、更新记录
11月20日上午:添加了复制粘贴功能,选中控件后ctrl+c复制,选中要被复制到的父控件ctrl+v粘贴
11月20日下午:修复了复制控件后删除控件会报错的问题,添加将xml读取到当前编辑的控件中的功能(快捷按钮的第一个按钮)
11月20日傍晚:由于在编辑属性的时候也会用到ctrl+c,v进行复制粘贴,会和复制粘贴控件的快捷键冲突,所以修改复制控件的快捷键为ctrl+,粘贴控件的快捷键为ctrl+.
11月28日下午:1.修复点击树根节点报错的问题 2.添加鼠标右键点击树结点弹出右键菜单的功能
12月2日晚上:添加了一个python解释器用于调试,alt+p打开,esc关闭,用于调试一些功能,具体请看第19篇记录
提示:从这往后的更新会提交到github上的1.0分支里,以后稳定了之后再合入主干。
12月8日晚上:重构了选中框,现在可以拖拽任何控件修改控件尺寸了,改动较大,具体请看第20篇记录
12月18日傍晚:增加多重选择第一版,ctrl+鼠标左键进行多选与取消多选,目前只支持多选之后一起移动与一起拖拽修改尺寸