Skip to content

Latest commit

 

History

History
209 lines (142 loc) · 6.36 KB

LISEZMOI.md

File metadata and controls

209 lines (142 loc) · 6.36 KB

Build Status

Bienvenue

Pygubu est un logiciel RAD pour développer rapidement et facilement des interfaces utilisateur avec le module tkinter en Python.

Les interfaces utilisateur conçues sont sauvées au format XML, et grâce à l'utilisation du constructeur pygubu, elles peuvent être chargées dynamiquement par les applications, si nécessaire.

Pygubu est inspiré de Glade.

Installation

Pygubu requiert Python >= 2.7 (Testé seulement avec Python 2.7.3, 3.2.3 avec tk8.5).

Vous pouvez installer pygubu par :

l'archive zip

Téléchargez et décompressez l'archive. Ouvrez un terminal, dirigez-vous vers le répertoire d'extraction puis exécutez :

python setup.py install

pip

pip install pygubu

Notez que si vous utilisez Python 3, vous pouvez utiliser son propre outil pip, par exemple :

pip3.5 install pygubu

Dans le cas précédent, j'utilise l'outil pip de Python 3.5

Pour vérifier le succès de l'installation, vous pouvez essayer d'importer pygubu - par exemple depuis IDLE

import pygubu

Si vous n'avez pas d'erreur ImportError, alors votre installation s'est faite avec succès.

Utilisation

Écrivez dans un terminal la commande suivante, selon votre système

Unix-like systems

pygubu-designer

Si vous avez une erreur du type "No module named 'appdirs'", vous pouvez mettre à jour par

wget https://pypi.python.org/packages/48/69/d87c60746b393309ca30761f8e2b49473d43450b150cb08f3c6df5c11be5/appdirs-1.4.3.tar.gz
gunzip appdirs-1.4.3.tar.gz
tar -xvf appdirs-1.4.3.tar
cd appdirs-1.4.3
sudo python setup.py install

Windows

C:\Python34\Scripts\pygubu-designer.exe

C:\Python34 est le chemin de votre répertoire d'installation de Python.

Note : pour les versions antérieures à 0.9.8, l'exécutable était nommé pygubu-designer.bat

Ensuite, l'application pygubu-designer devrait apparaître, telle quelle :

pygubu-desinger.png

Maintenant, vous pouvez commancer à créer votre application tkinter en utilisant les widgets que vous trouverez dans le panneau de gauche, appelé Widget List.

Après que vous ayez terminé de créer votre interface UI, sauvegardez-la en tant que fichier .ui par l'usage du menu File > Save.

Ce qui suit est un exemple d'interface UI, appelé helloworld.ui, créé en utilisant pygubu :

<?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>

Ensuite, vous devez créer votre script d'application, tel que ci-dessous (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()

Notez l'ajout de helloworld.ui dans la ligne suivante :

builder.add_from_file('helloworld.ui')

Vous devez insérer le nom du fichier (ou son chemin).

Notez aussi l'ajout de 'mainwindow' dans la ligne suivante :

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

Vous devez avoir le nom de votre widget main (le parent de tous les widgets), sinon vous obtiendrez l'erreur similaire :

Exception: Widget not defined.

See this issue for more information.

Documentation

Visitez le wiki pour consulter la documentation.

Voici quelques bonnes références de tkinter (et tk) :

Vous pouvez aussi voir le répertoire examples ou regarder ce tutoriel d'introduction en vidéo.

Histoire

Consultez la liste des changements ici.