Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/05/2019, à 14:30

LukePerp

Utiliser glade2script

Bonjour,

Malgré les explications du site officiel, je n'arrive pas à démarrer avec glade2script.
http://glade2script.tuxfamily.org/fr/principe.html
J'ai mon fichier glade conforme et mon script "hello world" sous le coude mais je n'arrive pas à démarrer le projet, pourriez-vous m'aider ?

Edit : ma question ne concerne plus son installation, mais son usage.
Je n'arrive pas à installer glade2script sous Ubuntu 18.04, pourriez-vous m'aider svp ?
https://code.google.com/archive/p/glade2script/

Dernière modification par LukePerp (Le 05/05/2019, à 17:07)


Desktop & Laptop - Ubuntu Mate dernière LTS - Intel i5 - 16 Go - Dual boot Windows offline

Hors ligne

#2 Le 05/05/2019, à 14:45

Nuliel

Re : Utiliser glade2script

Bonjour,

Le projet est mort malheureusement. https://forum.ubuntu-fr.org/viewtopic.p … #p21698549 propose zenity ou YAD (que je ne connais pas)

Hors ligne

#3 Le 05/05/2019, à 17:03

LukePerp

Re : Utiliser glade2script

Depuis ma question, j'ai continué à cherché. Je ne pense pas que le projet est mort puisqu'il y a une version de 2018-11, regardes dans la liste des paquets :
https://launchpad.net/~yannubuntu/+arch … oot-repair
Du coup, j'ai réussis à l'installer avec ce ppa, c'était facile. Mais par contre, je n'arrive pas l'utiliser. Je n'arrive pas à démarrer un projet, ni à afficher la fenêtre principale du GUI. Je vais renommer mon sujet pour être en adéquation avec mon besoin actuel.


Desktop & Laptop - Ubuntu Mate dernière LTS - Intel i5 - 16 Go - Dual boot Windows offline

Hors ligne

#4 Le 05/05/2019, à 19:48

Nuliel

Re : Utiliser glade2script

glade2script sert effectivement dans boot repair, peut être que yannubuntu bidouille glade2script pour que boot repair continue de fonctionner. Honnêtement, je sais pas trop l'état du projet (pas de sources)

Hors ligne

#5 Le 05/05/2019, à 20:11

metalux

Re : Utiliser glade2script

Bonjour,
Je pense comme Naziel que c'est une adaptation pour que Boot repair continue à fonctionner car AnsuzPeorth  qui est le développeur de Glade2script a cessé de venir sur le forum du jour au lendemain et depuis le projet est apparemment à l'abandon.
YannUbuntu a laissé la possibilité de lui envoyer un mail à travers ce forum, pose lui la question directement, ce sera sans doute le mieux pour savoir si tu peux encore l'utiliser à partir du paquet du P.P.A. de Boot Repair

https://forum.ubuntu-fr.org/misc.php?email=63523

Sinon que souhaites-tu faire? Yad peut-être une alternative, voici le genre d'interface que j'avais faite il y a quelques années pour voyager, avec des onglets+boutons. Zenity lui reste trop limité.
https://voyagerlive.org/wp-content/uplo … 44x420.jpg

Je ne sais pas si rodofr l'intègre toujours n'ayant pas testé les dernières versions mais je suppose que c'est toujours le cas sur la version XFCE. Tu peux essayer en live et regarder le script pour te faire une idée de comment utiliser Yad (Voyager theme est aussi fait avec Yad, pour les autres je ne me rappelle plus). Y PPA manager est aussi réalisé avec yad, il doit bien avoir d'autres applications mais ce sont celles qui me viennent en tête.

Hors ligne

#6 Le 05/05/2019, à 20:45

LukePerp

Re : Utiliser glade2script

Je savais déjà exploiter yad pour mes scripts, mais les interfaces yad sont un peu limités. Rien ne vaux un GUI dessiné. Comme je viens de découvrir Glade et que j'arrive à créer les fenêtres de mes rêves, j'ai voulu programmer pour m'amuser des scripts bash avec GUI complexe. Mais visiblement, glade2script ne fonctionne plus comme les principes du site officiel. J'ai appliqué à la lettre les exemples et aussi en les modifiant, mais rien à faire, la fenêtre glade ne démarre pas. Je me range à vos conseils, je vais quand même essayer de contacter yannubuntu. Voici le type d'erreur en démarrant glade2script, avec un fichier glade conforme et le script associé pour g2s :

$ glade2script -g '~/test1.glade'
Traceback (most recent call last):
  File "/usr/bin/glade2script", line 4830, in <module>
    m = Gui()
  File "/usr/bin/glade2script", line 1935, in __init__
    self.parse_xml()
  File "/usr/bin/glade2script", line 1312, in parse_xml
    name = node.attributes['id'].value
  File "/usr/lib/python2.7/xml/dom/minidom.py", line 522, in __getitem__
    return self._attrs[attname_or_tuple]
KeyError: 'id'
$ 

Desktop & Laptop - Ubuntu Mate dernière LTS - Intel i5 - 16 Go - Dual boot Windows offline

Hors ligne

#7 Le 05/05/2019, à 21:12

metalux

Re : Utiliser glade2script

Je ne peux pas t'en dire plus, tu as une erreur python (clef manquante dans un dictionnaire visiblement vu le message).
Plus qu'à espérer que YannUbuntu puisse te dépanner....

Hors ligne

#8 Le 06/05/2019, à 00:32

kholo

Re : Utiliser glade2script

... je peux dire une connerie ?
je le fais quand même...

<HS MODE ON>
pour avoir croisé LukePerp sur ce fil, en fait la véritable demande est comment faire facilement une interface graphique...
alors pourquoi ne pas simplement rester en full python, si tu programmes en python... voire même en bash...

pour ne pas me prendre trop le bourrichon, j'ai choisi de rester sur tkinter et je ne pense pas me gourer en disant que c'est le plus simple à porter autant qu'à programmer...
c'est vrai, il faut avoir quelques bases, mais ce n'est pas insurmontable et ce ne sera pas plus long que de chercher à faire fonctionner un truc qui n'est plus maintenu.
En plus, python est un peu plus simple quand on a quelques notions de POO mais ce n'est pas un paradigme obligatoire.
... et ce ne sont pas les tutos et exemples qui manquent.

!/usr/bin/env python
# -*- coding: utf-8 -*-

# http://apprendre-python.com/page-tkinter-interface-graphique-python-tutoriel

import tkinter as tk

fenetre = tk.Tk()

label = tk.Label(fenetre, text="Hello World")
label.grid()

fenetre.mainloop()

même sans créer une class, tu peux rapidement te faire une petite GUI et utiliser les outils qui vont avec (par exemple filedialog)
... et avec les class tu vas encore plus loin en te créant des modules réutilisable sans trop de modifications ; le plus long restant de te faire une petite bibliothèque d'exemples pour les choses principales.

perso je part de ça :

#!/usr/bin/env python3
# -*- coding: UTF8 -*-
"""
squelette d'une fenetre avec tkinter
"""

import tkinter as tk

import sys

__title__ = "Ki programme"
__author__ = 'Ury Cyril : kholo'
__license__ = 'cc'
__copyright__ = 'Creative Common 2018-2019'
__ver_major__ = 0
__ver_minor__ = 1
__ver_patch__ = 0
__ver_sub__ = ''
__version__ = "%d.%d.%d%s" % (__ver_major__, __ver_minor__,
                              __ver_patch__, __ver_sub__)

class MenuBar(tk.Menu):
    def __init__(self, parent):
        super().__init__()
        self.parent = parent

        self.fichierMenu = tk.Menu(self, tearoff=False)
        self.add_cascade(label="Fichiers", underline=0, menu=self.fichierMenu)
        self.fichierMenu.add_command(label="infos", underline=0, command=self.rien)
        # self.fichierMenu.add_command(label="Ouvrir", underline=0, command=self.master.ouvrir)
        # self.fichierMenu.add_command(label="Enregistrer", underline=1, command=self.master.enregistrer)
        # self.fichierMenu.add_command(label="Enregistrer Sous", underline=6, command=self.master.enregistrer_sous)
        self.fichierMenu.add_separator()
        self.fichierMenu.add_command(label="Importer", underline=0, command=self.rien)
        self.fichierMenu.add_command(label="Exporter", underline=0, command=self.rien)
        self.fichierMenu.add_separator()
        self.fichierMenu.add_command(label="Quitter", underline=0, command=self.quit)

        self.testMenu = tk.Menu(self, tearoff=False)
        self.add_cascade(label="test menu", underline=0, menu=self.testMenu)
        self.testMenu.add_command(label="infos", underline=0, command=self.rien)

        self.helpMenu = tk.Menu(self, tearoff=False)
        self.add_cascade(label="?", underline=0, menu=self.helpMenu)
        self.helpMenu.add_command(label="infos", underline=0, command=self.rien)
        # self.helpMenu.add_command(label="Aide", underline=0, command=self.master.ouvrir_aide)

    def rien(self, *event):
        """ dummy """
        print("TODO Menu")

    def quit(self):
        sys.exit(0)

class Fenetre(tk.Tk):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.parent = parent
        #**********************
        """ position """ 
        self.geometry("850x450-100-100")
        # """ le titre """
        self.title(__title__)
        # """ le fond - les couleurs sont gérées ailleurs """
        # self.config(background=COULEUR_FOND)

        #**********************
        # ## PLATEAU
        """ la barre de menu """
        self.menubar = MenuBar(self)
        self.config(menu=self.menubar)

        #**********************
        """ je met un bouton sans me prendre la tête """
        un_bouton = tk.Button(self, text="un bouton", command=self.rien)
        un_bouton.grid()
        #**********************
        """ pour gérer le redimentionnement de la fenetre"""
        self.grid_rowconfigure(0, weight=1)
        self.grid_rowconfigure(1, weight=1)
        self.grid_rowconfigure(2, weight=1)
        self.grid_columnconfigure(0, weight=1)
        self.resizable(True, True)
        #**********************
        """  """
        self.bind("<Key>", self.key)
    def rien(self):
        """ fonction qui écrit 'rien' """
        print('rien')

    def key(self, event):
        """ bind des touches pour lancer au clavier """
        # print("touche", repr(event.char))
        if event.char == '\x1b':
            self.quit()
        # elif event.char == '1':
            # print("dico icones", self.icones)

    def run(self):
        """ la boucle de GUI """
        self.mainloop()


if __name__ == "__main__":
    f= Fenetre()
    f.run()

c'est pas super complet mais ça utilise des bases divers que je peux ensuite fignoler
et pour ajouter des objets, c'est pas l'enfer tant qu'on attaque pas la partie de redimensionnement ou des trucs plus hardus encore comme le drag 'n drop.
ensuite, c'est vrai si il te faut 200 lignes de codes pour ajouter 50 boutons avec chacun un Label, c'est que t'es pas aller chercher très loin... quelques notions de factorisation et un dico suffisent...
c'est comme tout il suffit d'apprendre...

Non ?
<HS MODE OFF>

Hors ligne