All Projects → alejandroautalan → Pygubu

alejandroautalan / Pygubu

Licence: mit
A simple GUI designer for the python tkinter module

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Pygubu

Perceptron
A flexible artificial neural network builder to analyse performance, and optimise the best model.
Stars: ✭ 370 (-72.1%)
Mutual labels:  tkinter
Arf Converter
Bulk ARF file converter
Stars: ✭ 10 (-99.25%)
Mutual labels:  tkinter
Pyrustic
Lightweight framework and software suite to help develop, package, and publish Python desktop applications
Stars: ✭ 75 (-94.34%)
Mutual labels:  tkinter
Appjar
Simple Tkinter GUIs in Python
Stars: ✭ 565 (-57.39%)
Mutual labels:  tkinter
Cryptoapp
加密解密工具箱GUI程序,支持Windows和linux系统。
Stars: ✭ 24 (-98.19%)
Mutual labels:  tkinter
Honeybot
🛩 A python IRC bot with simple plugins dev. Ignited in mauritius, first-timers friendly!
Stars: ✭ 48 (-96.38%)
Mutual labels:  tkinter
Python-Media-Player
Simple Music Player Written in Python And Tkinter
Stars: ✭ 40 (-96.98%)
Mutual labels:  tkinter
Tksheet
Python 3.6+ tkinter table widget for displaying tabular data
Stars: ✭ 86 (-93.51%)
Mutual labels:  tkinter
Doujin voice renamer
依据 RJ 号从 dlsite 爬取 “标题” 和 “社团” 等信息 ,可以按照自定义模板对文件夹批量格式化命名
Stars: ✭ 26 (-98.04%)
Mutual labels:  tkinter
Supremedropbot
A supreme web bot, written in python, to grab a list of specified products, and checkout before they sell out!
Stars: ✭ 66 (-95.02%)
Mutual labels:  tkinter
Infospider
INFO-SPIDER 是一个集众多数据源于一身的爬虫工具箱🧰,旨在安全快捷的帮助用户拿回自己的数据,工具代码开源,流程透明。支持数据源包括GitHub、QQ邮箱、网易邮箱、阿里邮箱、新浪邮箱、Hotmail邮箱、Outlook邮箱、京东、淘宝、支付宝、中国移动、中国联通、中国电信、知乎、哔哩哔哩、网易云音乐、QQ好友、QQ群、生成朋友圈相册、浏览器浏览历史、12306、博客园、CSDN博客、开源中国博客、简书。
Stars: ✭ 5,984 (+351.28%)
Mutual labels:  tkinter
Chronophore
Desktop app for tracking student sign-ins in a tutoring center.
Stars: ✭ 6 (-99.55%)
Mutual labels:  tkinter
Awesome Tkinter Apps
A collection of nice Tkinter based applications I find or end up answering on StackOverflow
Stars: ✭ 53 (-96%)
Mutual labels:  tkinter
Pandastable
Table analysis in Tkinter using pandas DataFrames.
Stars: ✭ 376 (-71.64%)
Mutual labels:  tkinter
Python Tkinter Minesweeper
Minesweeper game written in Python using Tkinter GUI library.
Stars: ✭ 79 (-94.04%)
Mutual labels:  tkinter
Tqdm
A Fast, Extensible Progress Bar for Python and CLI
Stars: ✭ 20,632 (+1455.96%)
Mutual labels:  tkinter
Guitarscalechart
A guitar scale chart for many popular scales, modes, and keys.
Stars: ✭ 45 (-96.61%)
Mutual labels:  tkinter
Nordpy
A gui application to connect automatically to the recommended NordVPN server
Stars: ✭ 95 (-92.84%)
Mutual labels:  tkinter
Pyglossary
A tool for converting dictionary files aka glossaries. The primary purpose is to be able to use our offline glossaries in any Open Source dictionary we like on any OS/device.
Stars: ✭ 1,257 (-5.2%)
Mutual labels:  tkinter
Ttkwidgets
A collection of widgets for Tkinter's ttk extensions by various authors
Stars: ✭ 57 (-95.7%)
Mutual labels:  tkinter

Build Status

Leer en Español

Welcome to Pygubu!

Pygubu is a RAD tool to enable quick and easy development of user interfaces for the Python's tkinter module.

The user interfaces designed are saved as XML files, and, by using the pygubu builder, these can be loaded by applications dynamically as needed.

Pygubu is inspired by Glade.

Installation

Pygubu requires Python >= 2.7

pip install pygubu

Usage

Since version 0.10 the project was splitted in two main modules:

  • The pygubu core (this project), that load and build user interfaces defined in xml.
  • The interface editor pygubu-designer, that helps you create the xml definition graphically

Start creating your tkinter application xml UI definition using the pygubu-designer editor.

The following is a UI definition example called helloworld.ui:

<?xml version='1.0' encoding='utf-8'?>
<interface>
  <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>
          <property name="column">0</property>
          <property name="propagate">True</property>
          <property name="row">0</property>
          <property name="sticky">nsew</property>
          <rows>
            <row id="0">
              <property name="weight">1</property>
            </row>
          </rows>
          <columns>
            <column id="0">
              <property name="weight">1</property>
            </column>
          </columns>
        </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>
              <property name="column">0</property>
              <property name="propagate">True</property>
              <property name="row">0</property>
            </layout>
          </object>
        </child>
      </object>
    </child>
  </object>
</interface>

Then, you should create your application script as shown below (helloworld.py):

# helloworld.py
import tkinter as tk
import pygubu


class HelloWorldApp:
    
    def __init__(self):

        #1: Create a builder
        self.builder = builder = pygubu.Builder()

        #2: Load an ui file
        builder.add_from_file('helloworld.ui')

        #3: Create the mainwindow
        self.mainwindow = builder.get_object('mainwindow')
        
    def run(self):
        self.mainwindow.mainloop()


if __name__ == '__main__':
    app = HelloWorldApp()
    app.run()

Note that instead of helloworld.ui, you should insert the filename (or full path) of your UI definition:

builder.add_from_file('your_ui_definition.ui')

Note also that instead of 'mainwindow', you should have the name of your main_widget (the parent of all widgets) in the following line:

self.mainwindow = builder.get_object('_your_main_widget_')

Documentation

Visit the pygubu wiki for more documentation.

The following are some good tkinter (and tk) references:

You can also see the examples directory or watch this introductory video tutorial.

History

See the list of changes here.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].