python tkinter 模块的简单 GUI 设计器
项目描述
欢迎来到派古布!
Pygubu
是一个RAD 工具,可以快速轻松地为 Python模块开发用户界面。tkinter
设计的用户界面保存为XML文件,并且通过使用pygubu builder,这些可以由应用程序根据需要动态加载。
Pygubu 的灵感来自Glade。
安装
最新版本的 pygubu 需要 Python >= 3.6
您可以使用以下命令安装 pygubu-designer:
点子
pip install pygubu-designer
Arch Linux ( AUR )
yay pygubu-designer
截屏
用法
根据您的系统,在终端上键入以下命令之一。
类 Unix 系统
pygubu-designer
视窗
C:\Python3\Scripts\pygubu-designer.exe
Python 安装目录C:\Python3
的路径在哪里。
现在,您可以使用顶部面板中名为Widget Palette
.
创建完UI 定义.ui
后,转到顶部菜单将其保存到文件中File > Save
。
以下是 使用 pygubu 创建的名为helloworld.ui的 UI 定义示例:
<?xml version='1.0' encoding='utf-8'?>
<interface version="1.2">
<object class="tk.Toplevel" id="mainwindow">
<property name="height">200</property>
<property name="resizable">both</property>
<property name="title" translatable="yes">Hello World App</property>
<property name="width">200</property>
<child>
<object class="ttk.Frame" id="mainframe">
<property name="height">200</property>
<property name="padding">20</property>
<property name="width">200</property>
<layout manager="pack">
<property name="expand">true</property>
<property name="side">top</property>
</layout>
<child>
<object class="ttk.Label" id="label1">
<property name="anchor">center</property>
<property name="font">Helvetica 26</property>
<property name="foreground">#0000b8</property>
<property name="text" translatable="yes">Hello World !</property>
<layout manager="pack">
<property name="side">top</property>
</layout>
</object>
</child>
</object>
</child>
</object>
</interface>
然后,您应该创建如下所示的应用程序脚本( helloworld.py ):
# helloworld.py
import pathlib
import tkinter as tk
import tkinter.ttk as ttk
import pygubu
PROJECT_PATH = pathlib.Path(__file__).parent
PROJECT_UI = PROJECT_PATH / "helloworld.ui"
class HelloworldApp:
def __init__(self, master=None):
# 1: Create a builder and setup resources path (if you have images)
self.builder = builder = pygubu.Builder()
builder.add_resource_path(PROJECT_PATH)
# 2: Load an ui file
builder.add_from_file(PROJECT_UI)
# 3: Create the mainwindow
self.mainwindow = builder.get_object('mainwindow', master)
# 4: Connect callbacks
builder.connect_callbacks(self)
def run(self):
self.mainwindow.mainloop()
if __name__ == '__main__':
app = HelloworldApp()
app.run()
请注意,而不是helloworld.ui
在以下行中:
PROJECT_UI = PROJECT_PATH / "helloworld.ui"
您应该插入刚刚保存的 UI 定义的文件名(或路径)。
另请注意,而不是'mainwindow'
在以下行中:
self.mainwindow = builder.get_object('mainwindow', master)
您应该拥有主小部件的名称(所有小部件的父级),否则您将收到类似于以下内容的错误:
Exception: Widget not defined.
有关详细信息,请参阅此问题。
文档
访问wiki以获取更多文档。
以下是一些不错的 tkinter(和 tk)参考:
历史
请参阅此处的更改列表。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
pygubu-designer-0.31.tar.gz
(968.0 kB
查看哈希)
内置分布
pygubu_designer-0.31-py3-none-any.whl
(367.9 kB
查看哈希)
关
pygubu_designer -0.31-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2d874d00597863d3781f8b3df13ef80b4809f25819e79e0ca5485641b207d6b0 |
|
MD5 | 160f9ba46da5edb8d755fcc725c8f5f1 |
|
布莱克2-256 | c0111e13357ea2781fa4d1489e9aaf29d1bd18b02d6ee6614a4ce424b10da7d4 |