Skip to main content

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

截屏

pygubu-desinger.png

用法

根据您的系统,在终端上键入以下命令之一。

类 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 查看哈希

已上传 source

内置分布

pygubu_designer-0.31-py3-none-any.whl (367.9 kB 查看哈希

已上传 py3