QT for newbie ?? Help !!!

Signaler
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009
-
Messages postés
70
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
21 décembre 2005
-
Je voudrai apprendre a creer une
frame avec qt. J'ai chercher quelques astruces mais rien de concret et
la plupart du temps c'est assez mal commente.
Je souhaite comprendre le fonctionnement pour pouvoir commencer a
developper ( toujours avec kwrite et gcc donc pas de kdevelopp ) des
frames meme simplissime, c'est juste pour commencer quelque part.

Merci pour vos suggestions




"Avant même de fonctionner, tout programme est déjà obsolète."

10 réponses

Messages postés
70
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
21 décembre 2005

si tu veux générer une frame pour te faire la main, utilise Qt Designer (réalisation graphique et facile de frames avec menu,boutons,...) qui te génère un fichier que tu peux exporter vers Kdevelop.Le code est alors généré automatiquement, t'as plus qu'à le regarder pour comprendre comment ça marche.
C je pense la meilleure méthode pour comprendre le principe.
voilà !
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009

Ok man c'est cool

Je vais voir tout de suite et je te dis si ça...

"Avant même de fonctionner, tout programme est déjà obsolète."
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009

Heu j'ai tester mes j'ai pas trop compris comment l'importer...

Quand je le fais kdevelop me sort la fenetre en preview et impossible
de trouver le code source ( meme en compilant mais je trouve pas le
projet... ). Help me !!!

"Avant même de fonctionner, tout programme est déjà obsolète."
Messages postés
70
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
21 décembre 2005

ben ça fait un peu longtemps que j'ai laissé Qt et Kdevelopp de coté.

Mais si je me rappelle bien, tu dois créer un projet spécial
frame avec Kdevelopp (jsais plus lequel mais à priori n'importe lequel
fait l'affaire) aprés tu fais importer la feuille générée par Qt
Designer et normalement ça marche, normalement ça compile en générant
une nouvelle classe qui correspond à ta frame.

Bon je pense pas que ces explications vont t'aider puisque je me
rappelle c'était trés facile à générer comme projet et si ça se trouve
ton problème viens seulemnt du fait que tu as mal importé le fichier qt.

Bon courage.

Dis moi si tu n'y arrive vraiment pas, j'essaierai de trouver autre chose.
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009

Alors j'ai fait KDE->simple aplication KDE-> un seul widget

Qaund je regarde le source sa donne sa :

Widget::Widget()

: KMainWindow( 0, "Widget" )

{

// set the shell's ui resource file

setXMLFile("widgetui.rc");



new QLabel( "Hello World", this, "hello label" );

}

je sais pas si c'est en Qt mais de toute façon je ne sais pas ce qu'est un widget...

mes includes sont les suivants:



#include "widget.h"

#include <qlabel.h>

#include <kmainwindow.h>

#include <klocale.h>



voila.... n'aurait tu pas de la doc sur les fentres en qt car je debute
vraiment les interfaces et j'ai pas trop compris la gestion des
evenements dans les sources que j'ai pu voir....


Je te remercie de toute facon pour les reponses que tu m'a apporter .



"Avant même de fonctionner, tout programme est déjà obsolète."
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009

A tout hasard si tu veux bien discuter avec moi sur msn pour me filer un coup de paluche en temps reel, sa serait vraiment cool.

@++


"Avant même de fonctionner, tout programme est déjà obsolète."
Messages postés
70
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
21 décembre 2005

un widget, c'est une unité, c comme un objet, un bouton "ok" est un
widget ainsi qu'une fenêtre qui est un widget et contient des widgets.

hum je sais pas si je suis clair

en fait , tous les éléments de ton interface sont des widgets qui ont
des relations pères-fils (un widget pere (fenetre popup) contient des
widgets fils (boutons) ) ainsi que des relations d'héritages ( les
widgets sont des objets).

la gestion des évènements permet de gérer les actions lorsque tel ou
tel widget a subi telle action (clique de souris, passage de
souris,etc...).

envoie moi le code qui concerne les évènements si je t'ai pas éclairé, je te le commenterai dans la mesure du possible.

je dois avoir des sauvegardes chez moi d'un code d'interfaçage, je te l'envoie dés que je peux..
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009

J'aurais pas le temps de t'envoyer le code maintenant (je dois bouger
je serais pas la avant lundi je pense) j'essaye de te preparer un
code pour lundi et je te l'envoi. au pire si tu trouve un code sympa
pour une frame simple envoi moi la par mail (ionace@latriyade.com). Et
pour les widgets je pense avoir compris (en fait c'est tout les
elements graphiques d'une frame -button, imputbox, ...-, donc chaque
widget est une fonction membre de la classe mere -le widget
principale-). Je me suis peut etre emballe dans ma conclusion...

Merci pour ta reponse

@++



"Avant même de fonctionner, tout programme est déjà obsolète."
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009

Heu.. j'ai pose un source sur le site sur les frames en Qt justement.
J'ai travaille dessus hier soir (sa vole pas tres haut mais sa m'a pas
mal aide). Pour l'adresse de la doc je me suis servi de la doc que
j'avais deja installe avec Qt (je l'ai decouverte hier soir egalement
tout a fait par hasard....). J'ai
eu un probeleme par contre avec la fonction connect() (j'ai pose la
question juste en dessous) donc si tu pouvais m'aider une derniere fois
sa serait cool de ta part .

Merci

"Avant même de fonctionner, tout programme est déjà obsolète."
Messages postés
70
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
21 décembre 2005

salut, ben j'espère que je ne réponds pas trop à la bourre !
la fonction connect te permet de relier un évenement à une action : c 'est trés pratique !
par exemple quand on clique sur un bouton, on peut agir sur un autre objet (suppression d'un champ dans une combobox)
Il y a normalement une fonction qui te permet de creer graphiquement tes connects
sinon le code c'est plûtot :

connect(objet1,SIGNAL(évenement sur l'objet objet1),objet2,SLOT(action sur l'objet objet2));

ex de ma listbox

mon bouton :

bouton_supprimer = new QPushButton( affichagetaches, "bouton_supprimer" );

bouton_supprimer->setGeometry( QRect( 20, 90, 80, 20 ) );

ma combo :

liste_taches = new ihm_qlistbox(affichagetaches, "liste_taches" );
liste_taches->setGeometry( QRect( 120, 20, 240, 110 ) );
liste_taches->tache_en_cours= &tache_en_cours;

le connect :

connect( bouton_supprimer, SIGNAL( clicked() ), liste_taches, SLOT( supprimer_item() ) );

j'ai crée une nouvelle classe ihm_qlistbox qui hérite de la classe QListBox standard de Qt et que j'ai instancié de plusieurs fonctions ainsi que de slots :


class ihm_qlistbox : public QListBox {
Q_OBJECT
public:
/// Constructeur par défaut
ihm_qlistbox( QWidget *parent=0, const char *name=0,WFlags f=0 ) : QListBox(parent, name,f){}
...


public slots:
void ajouter_item();
void supprimer_item(){removeItem(currentItem());
};
};

le principe est donc de créer tes propres slots pour pouvoir générer tes propres actions sur tes objets.
la fonction removeItem() est une fonction par défaut de l'objet QListBox mais pas de bol c'est pas un slot donc on ne peut pas l'utiliser dans le connect, c'est pour ça que j'ai crée ma propre classe.
si c'est pas assez clair, je t'enverrai mon code commenté.
bon courage ;)