web-dev-qa-db-fra.com

Appel d'un script Python à partir d'un bouton à l'aide de Glade Designer

Comment puis-je appeler l'authentification Ubuntu One python à partir d'un bouton en utilisant Glade?

ce que je dois faire est d'appeler un script python tel que: $ python u1file.py login

Ajout de la prise en charge d'Ubuntu One Files à votre application

2
Reya276

Gtk est une boîte à outils d'interface utilisateur conçue pour être un cadre piloté par les événements. La meilleure approche serait donc d'attendre qu'un événement se produise pour exécuter votre code python.

Sur Glade, vous pouvez ajouter des widgets à un GtkWindow (qui est également un widget), et les widgets émettent ce qu'on appelle des signaux. Les signaux sont des événements qui indiquent que quelque chose s'est produit. Cette action peut être l'utilisateur cliqué sur un bouton, tapé du texte, redimensionné la fenêtre, etc.

Un exemple très simple peut être trouvé ici [ 1 ]

Et voici une partie que j'ai extraite

Panels in Glade

Dans la section des propriétés, dirigez-vous vers l'onglet des signaux après avoir précédemment sélectionné un widget sur l'éditeur, par exemple un bouton.

Glade signals

Comme vous pouvez le voir dans l'image ci-dessus, chaque signal a un nom et peut être lié à un "gestionnaire". Dans votre code, vous devez créer une fonction avec le même nom que vous avez choisi comme poignée, dans ce cas "on_window_destroy"

Ensuite, votre code devrait ressembler à ceci:

class TutorialApp(object):       
def __init__(self):
    builder = gtk.Builder()
    builder.add_from_file("tutorial.xml")
        # Here we do the binding
    builder.connect_signals({ "on_window_destroy" : my_custom_handler })
    self.window = builder.get_object("window")
    self.window.show()

def my_custom_handler(self, widget):
    # Excecute whatever python code you want here :D

if __== "__main__":
    app = TutorialApp()
    gtk.main()

Source

http://www.micahcarrick.com/gtk-glade-tutorial-part-1.html [ 1 ]

1
Hernantz

Importez le script comme vous le feriez avec n'importe quel autre module/package en Python.

import u1file
ui1file.login()

Voir la réponse de Hernantz si vous ne savez pas comment vous connecter à un bouton.

1
Timo

Est-ce que cela ferait ce que vous voulez? C'est essentiellement l'équivalent de taper python scriptname.py dans un terminal.

 import os
 os.system("python sriptname.py")
0
unknownone