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 15/08/2008, à 16:35

gtkshroom

[Glade] Petite interface graphique pour m2tstoavi

Bonjour,

Je suis encore un grand débutant dans tout ce qui est Glade et Python, mon apprentissage est encore tout récent.
Je souhaite développer une petite interface graphique avec 3 ou 4 éléments(un GtkFileChooserButton, une GtkProgressBar, 2 GtkButtons: un pour quitter et un pour lancer la conversion) qui utilise le programme externe à l'application m2tstoavi(logiciel de conversion en CLI installé dans /usr/bin/).
Le seul élément qui a à peu près l'air de marcher et le GtkFileChooserButton, je séléctionne le fichier à convertir et dans le terminal, j'ai en sortie usage: /usr/local/bin/m2tstoavi filename.m2ts ... Je pense qu'il n'y a rien d'anormal pour l'instant, non?
Mais pour la suite, je ne vois plus trop comment faire, je parcours quelques dizaines de tutos et de bouts de codes sans pour autant arriver à construire quelque chose de logique, je manque encore d'entraînement(c'est pour ça que je fais appel à votre aide big_smile) Pour faire simple, j'essaie de trouver comment lier le bouton qui lance la conversion quand le fichier sélectionné dans le GtkFileChooserButton est présent. La GtkProgressBar n'est pas essentielle pour l'instant.

Je vous copie mon début de programme, il y sûrement des améliorations à faire ...

#! /usr/bin/env python
# -*- coding: iso-8859-15 -*-

import gtk
import gtk.glade
import os, sys

class openfile:
	
	def __init__(self):
		
		self.gui=gtk.glade.XML("m2tstoavi.glade")
		self.win=self.gui.get_widget("MainWindow")

		dico = {\
		'on_browse_btn_file_set':self.browse_file_set,\
		'on_MainWindow_destroy':gtk.main_quit,\
		'on_quit_btn_clicked':gtk.main_quit}
		self.gui.signal_autoconnect(dico)
		
	def browse_file_set(self, widget):
		os.system("m2tstoavi")
			
		
		dico1 = {\
		'on_cvt_button_clicked':self.cvt_clicked}
		self.gui.signal_autoconnect(dico1)
		
	def cvt_clicked(self, widget):
		print("Indisponible")
	

openfile()
gtk.main()

Je me suis inspiré de ce tuto. Un "hello world" classique qui aide bien pour les débuts.

Je vous remercie à l'avance pour vos conseils et corrections dans mon petit projet.

Hors ligne

#2 Le 19/08/2008, à 10:53

gtkshroom

Re : [Glade] Petite interface graphique pour m2tstoavi

up

Hors ligne

#3 Le 19/08/2008, à 22:10

rniamo

Re : [Glade] Petite interface graphique pour m2tstoavi

je ne vois pas le problème, si t'as réussi avec le gtkbuttonfilechooser gérer des boutons n'est pas plu dur, c'est encore du "on_ok_btn_clicked".


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#4 Le 20/08/2008, à 13:00

gtkshroom

Re : [Glade] Petite interface graphique pour m2tstoavi

J'arrive effectivement à gérer les boutons, bien que la fonction print() du bouton "Convertir" ne réagisse pas quand je clique dessus... hmm Quand je fais un seul dico avec deux signaux de boutons, ça plante, donc j'en ai fait un deuxième pour séparer les deux boutons mais le 2e dico n'a pas l'air de réagir... Aurai-je loupé quelque-chose?

Hors ligne

#5 Le 20/08/2008, à 13:07

rniamo

Re : [Glade] Petite interface graphique pour m2tstoavi

print() ne réagit pas tant que t'as pas appelé gtk.main.quit(). Essaye plutôt de mettre un label et de faire un set_label pour tester tes boutons, c'est plus simple.


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#6 Le 22/08/2008, à 15:28

aleph

Re : [Glade] Petite interface graphique pour m2tstoavi

> rniamo

>print() ne réagit pas tant que t'as pas appelé gtk.main.quit(). Essaye plutôt de mettre un label et de faire un set_label pour tester tes boutons, c'est plus simple.

Une instruction print de Python étant l'équivalent d'un sys.stdout.write(<str>), il n'y a aucun problème à insérer des "print" dans son code que ce soit soit en mode console ou avec l'utilisation de pygtk, wxPython, pyQt ou tkInter.

Dans les bons éditeurs graphiques, l'exécution du code Python renvoie sys.stdin et sys.stderr dans une fenêtre de celui-ci et non dans une console/terminal.