A voir également:
- Probleme Qt C++
- Qt sdk - Télécharger - Langages
- Qt tab bar - Télécharger - Personnalisation
- Qt platform plugin windows 10 ✓ - Forum Programmation
- Qt tempo - Forum C++
- Qt forum - Forum Programmation
11 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
5 janv. 2009 à 16:16
5 janv. 2009 à 16:16
par défaut les implementation vont dans les .cpp.
Je ne saisi pas bien ton problème.
Je ne saisi pas bien ton problème.
les implémentation c'est par exemple :
non ?
Le probleme c'est que je me retrouve avec une erreur quand je fait mon make :
bref je sait pas ou mettre cette séquence sans que ca bug ...
En tout cas merci pour ta réponse rapide.
void FenTell::on_ChercherFichier_clicked() { QString dossier = QFileDialog::getExistingDirectory(this); }
non ?
Le probleme c'est que je me retrouve avec une erreur quand je fait mon make :
FenetreTell.cpp:17: error: ISO C++ forbids declaration of `on_ChercherFichier_cl icked' with no type FenetreTell.cpp:17: error: prototype for `int FenTell::on_ChercherFichier_clicke d()' does not match any in class `FenTell' FenetreTell.h:16: error: candidate is: void FenTell::on_ChercherFichier_clicked( ) FenetreTell.cpp:17: error: `int FenTell::on_ChercherFichier_clicked()' and `void FenTell::on_ChercherFichier_clicked()' cannot be overloaded mingw32-make[1]: *** [debug/FenetreTell.o] Error 1 mingw32-make[1]: Leaving directory `C:/Documents and Settings/Administrateur/Bur eau/C/tell' mingw32-make: *** [debug] Error 2
bref je sait pas ou mettre cette séquence sans que ca bug ...
En tout cas merci pour ta réponse rapide.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
5 janv. 2009 à 17:58
5 janv. 2009 à 17:58
oui, mais il faut aussi délarer la méthode dans la classe et dans le .h !
Ce qui me gêne dans ton programme c'est la déclaration de la classe; tu déclares un objet Ui::'FenTell' alors que tu as créé une classe 'FenTell' à laquelle tu ne fais jamais appel.
Je pense qu'en fait il te faut écrire le main plus classiquement de cette manière:
Je pense qu'en fait il te faut écrire le main plus classiquement de cette manière:
#include <QApplication> #include "FenetreTell.h" int main(int argc, char ** argv) { QApplication app( argc, argv ); FenetreTell win; win.show(); return app.exec(); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Désolé de répondre aussi tard mais je gère ce projet de développement uniquement l'après midi ...
J'ai récuperer le main de loupius et remplacer l'ancien et ca ne m'affiche que 2 erreurs comme au dessus.
Si je comprend bien char sniper j'ai inversé
et
?
merci pour les réponses.
J'ai récuperer le main de loupius et remplacer l'ancien et ca ne m'affiche que 2 erreurs comme au dessus.
Si je comprend bien char sniper j'ai inversé
void on_ChercherFichier_clicked();
et
void FenTell::on_ChercherFichier_clicked() { QString dossier = QFileDialog::getExistingDirectory(this); }
?
merci pour les réponses.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
6 janv. 2009 à 16:33
6 janv. 2009 à 16:33
Non, autant pour moi, j'ai mal lu.
essai de mettre des ";" après tes fonctions.
essai de mettre des ";" après tes fonctions.
Est-tu sûr d'avoir bien déclaré:
void FenTell::on_ChercherFichier_clicked()
dans le fichier 'FenetreTell.cpp'
Les erreurs sont-elles toujours les mêmes?
void FenTell::on_ChercherFichier_clicked()
dans le fichier 'FenetreTell.cpp'
Les erreurs sont-elles toujours les mêmes?
Bonne nouvelle je n'ai plus d'erreur !
Par contre ma fonction (copier l'adresse d'un dossier sélectionné par l'utilisateur ne se lance toujours pas lorsque j'appuie sur mon bouton ChercherFichier .
Par contre ma fonction (copier l'adresse d'un dossier sélectionné par l'utilisateur ne se lance toujours pas lorsque j'appuie sur mon bouton ChercherFichier .
#include "FenetreTell.h" FenTell::FenTell(QDockWidget *parent) : QDockWidget(parent) { setupUi(this); } void FenTell::on_ChercherFichier_clicked() { QString dossier = QFileDialog::getExistingDirectory(this); }
Tu pourrais m'expliquer comment on fait ?
Parceque je croyait que l'autoconnect ou un truc du genre marchait a partir du moment qu'on respectait la syntaxe: on_NomWidget_Signal() .
En tout cas merci de votre aide.
Parceque je croyait que l'autoconnect ou un truc du genre marchait a partir du moment qu'on respectait la syntaxe: on_NomWidget_Signal() .
En tout cas merci de votre aide.
Je ne sais pas si l'autoconnect existe... j'ai de sérieux doute, mais pourquoi pas.
2 solutions:
- solution logicielle: la plus simple
- solution graphique: la plus rapide (si on sait!)
Cliquer sur l'icone adéquate (qui permet de réaliser des connexions (prière de ne pas rire))
Passer la souris sur le bouton, il doit être mis en valeur
Cliquer, maintenir enfoncé et relâcher sur un autre objet (tu vas voir des noms apparaître)
Une fenêtre s'ouvre et là tu choisiras les signaux; tu peux même en rajouter
La première fois c'est pas évident.
2 solutions:
- solution logicielle: la plus simple
FenTell::FenTell(QDockWidget *parent) : QDockWidget(parent) { setupUi(this); connect (nomDuBoutonDeclareDansQtDesigner, SIGNAL(clickerd()), this, SLOT(on_ChercherFichier_clicked())); }
- solution graphique: la plus rapide (si on sait!)
Cliquer sur l'icone adéquate (qui permet de réaliser des connexions (prière de ne pas rire))
Passer la souris sur le bouton, il doit être mis en valeur
Cliquer, maintenir enfoncé et relâcher sur un autre objet (tu vas voir des noms apparaître)
Une fenêtre s'ouvre et là tu choisiras les signaux; tu peux même en rajouter
La première fois c'est pas évident.
Effectivement l'autoconnect existe (tout est dans la doc de Qt), il faut bien respecter la syntaxe suivante:
void on_<widget name>_<signal name>(<signal parameters>);Le widget est-il bien 'ChercherFichier' ? Ce nom n'est d'ailleurs pas philosophiquement correct, car, par convention, on réserve les mots commençant par une majuscule pour les noms de classe; mais ce n'est pas ça qui empêchera de fonctionner.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
7 janv. 2009 à 09:42
7 janv. 2009 à 09:42
L'autoconnect, ça me dit quelque chose. Mais je ne connais pas la syntaxe et je n'ai jamais utiliser.
Il faut peut être faire une passe d'un outils Qt avant ?
Sinon, qu'a tu fais pour résoudre ton prolème de compilation, je suis curieu de savoir.
Il faut peut être faire une passe d'un outils Qt avant ?
Sinon, qu'a tu fais pour résoudre ton prolème de compilation, je suis curieu de savoir.
Désolé pour la syntaxe, c'est un des mes premiers programme avec Qt et C++ j'ai un peu de mal avec toute ces convention ^^...
j'ai trouver ca vis a vis de l'autoconect et de sa déclaration :
"Il suffira d'ajouter la ligne suivante dans le constructeur de la fenêtre pour bénéficier de toute la puissance de l'Auto-Connect : QMetaObject::connectSlotsByName(this); "
Et quand je vais voir mon ui_tell.h je trouve :
Sinon je ne sait pas trop comment j'ai fait partir les erreurs, puisque les fichier sont identiques...
j'ai trouver ca vis a vis de l'autoconect et de sa déclaration :
"Il suffira d'ajouter la ligne suivante dans le constructeur de la fenêtre pour bénéficier de toute la puissance de l'Auto-Connect : QMetaObject::connectSlotsByName(this); "
Et quand je vais voir mon ui_tell.h je trouve :
QMetaObject::connectSlotsByName(FenTell);
Sinon je ne sait pas trop comment j'ai fait partir les erreurs, puisque les fichier sont identiques...