使用 JSON 轻松制作 Tkinter 应用程序。
项目描述
易通
在 JSON 的帮助下创建 Tkinter 应用程序!
test = EasyTkObject()
test.create_root()
test.open_file("json/test.json")
test.reading_from_json()
test.start_root()
安装
如果您的环境中没有安装 tkinter,请安装它:
pip install tkintertable
然后安装这个包。
pip install easy-tk
用法
JSON结构:
{
...,
"Frame1": {
"layout": "grid",
"methods": ["confirm_click","add_click","set.."],
"master": "FrameContainer",
"config": {"config_key":"config_value","config_key":"var:something"},
"grid": {"sticky": "NSEW"},
"newRow": false
},...
}
您从小部件的名称开始,例如:
Frame1:{...},"LabelUsername":{...},"ButtonConfirm":{...},...
布局- 您可以使用网格或打包或放置
"layout":"grid"或"layout:"pack"
方法- 在此列表中,您可以包含您将使用的方法的名称,这在 Python 部分中进行了解释
master - 此小部件属于哪个 master,请注意使用哪个布局管理器以及该 master 存在
config - 例如:"config":{"text":"TEST"}或者如果您导入了变量,则只需调用"config":{"some_key":"var:something"}
网格- 如果您决定使用网格作为布局,然后用适当的数据填充它,您不必包含行和列,例如:
"Button1":{...},Button2":{...},Button3":{..., "newRow":true },
Button1 开启row=0,column=0,Button2 开启row=0,column=1,Button3 开启_row=1_,column=0。但如果需要,您也可以包含行和列。考虑到这一点,下一列来自您/没有/指定列的位置。
pack - 如果布局是 pack,则在此处包含属性,或者将其留空。
如果您使用 pack,那么即使您没有任何值,也必须将其包含在 JSON 对象中。例如:
...,
"Canvas": {
"master": "Frame0",
"layout": "pack",
"pack": {"side":"left", "fill":"both", "expand":true},
"config": {},
"methods": [1]
},
"Scrollbar": {
"master": "Frame0",
"layout": "pack",
"pack": {},
"config": {"orient": "vertical"},
"methods": [2]
},
...
两个小部件都可以工作。这同样适用于网格。
newRow - 如果布局是网格,则使用布尔值。
Python
from easy_tk import EasyTkObject
此类具有将 JSON“转换”为 Tkinter 应用程序所需的所有方法。EasyTkObject 主要使用 EasyTk 方法,但方式不同。您可以覆盖它们。
create_root()get(name,obj=True)- 如果obj是一个小部件的对象,False那么你将获得 EasyTkChild 对象import_methods(methods={})- 将所有方法放在 dict 中,然后在 json 列表中调用该方法。...,"methods":["on_check_btn","set_style_btns","exit_app",...]import_modules(modules={})- 把你所有的模块放在这里,你可以包含你自己的小部件,默认是这个["Frame","Entry","Button","Label","Separator","Radiobutton","Canvas","Scrollbar"],你可以扩展它import_variables(variables={})- 只包括你需要配置的变量,调用它们"var:some_key"open_file(file)- 设置你的 json 文件 EasyTkreading_from_json()- 将每个小部件添加到屏幕,应用所有配置值,调用您包含的所有方法add_just_one(file,key)- 从 json 中只添加一个小部件(再次确保存在 master),例如add_just_one("json/test.json","Canvas5")easy_factory()- EasyTk 对象的工厂
其他信息
在github 上你可以找到 helpers 文件夹,有在整个窗口中添加滚动条的快捷方式。以后我会添加更多你可以使用的。
使用示例
变化
1.0.7.1 在创建 master 时增加了对旧版本的支持
1.0.6.4 添加了在屏幕上显示小部件之前删除小部件和更改 json 中的键的方法
1.0.6.3 修复了加载一个小部件时出现的模块错误
1.0.6.2 - 修复了使用 json 中的变量进行网格/包
1.0.6 - 您不必在与 json 连接的方法中指定 all_widgets 参数
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。