IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Signal clicked() non fonctionnel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Par défaut Signal clicked() non fonctionnel
    saut
    j'ai créé une form avec Qt Designer , une form simple avec un QPushButton et QLineEdit.
    le signal clicked ne fonctionne pas dans ce code !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #include "u_mainwindow.h"
     
    class mainwindow : public QWidget
    {
    public:
        mainwindow()
        {
            mw =  new QMainWindow;
            ui.setupUi(mw);
            connect(ui.pushButton,SIGNAL(clicked()),this , SLOT(onClick()));
            mw->show();
        }
     
        void onClick() 
        {
            ui.lineEdit->setText("changed"); // 
        }
    private:
        Ui_MainWindow ui;
        QMainWindow * mw;
    };
     
     
    int main(int argc, char* argv[])
    {
         QApplication app(argc,argv);
         mainwindow widget;
         app.setStyle("cleanlooks");
     
         return app.exec();
     
    }
    merci

  2. #2
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Bonjour,

    Vous avez oublié de placer Q_OBJECT juste avant la ligne public:.
    De plus, la déclaration de la classe dans le main.cpp signifie que vous aurez besoin de faire #include "main.moc" et d'exécuter qmake (menu Compiler > Exécuter qmake) pour que cela fonctionne.
    L'alternative est de déclarer votre classe dans un fichier header .h.

    Bonne journée,
    Louis
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Par défaut
    merci Amnell
    alors ce n'est pas possible sans Q_OBJECT , comment éviter l'utilisation de qmake ?
    je utilisé codeblocks . je pensais que ce est simple, il suffit de cliquer build.

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Citation Envoyé par codz01 Voir le message
    alors ce n'est pas possible sans Q_OBJECT , comment éviter l'utilisation de qmake ?
    je utilisé codeblocks . je pensais que ce est simple, il suffit de cliquer build.
    Q_OBJECT n'impose pas l'utilisation de qmake, mais bien de moc. qmake est cependant extrêmement pratique puisqu'il automatise cette étape. Si tu veux rester dans CodeBlocks, tu peux tenter d'installer l'assistant de création de projet Qt 5, il devrait tout automatiser : http://forums.codeblocks.org/index.php?topic=18416.0 (jamais testé). Sinon, l'idéal reste d'utiliser Qt Creator, qui prend en compte toutes les spécificités de Qt sans que tu doives y réfléchir trop .
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Par défaut
    merci beaucoup dourouc05
    mais je trouve que Qt impose beaucoup de travails pour des chose vraiment simple , par exemple quand tu veux traque le pointeur de la souris sur un qframe , dans qtcreator tu doit crée une autre class derive de qframe et tu doit ajouter les evenements (mouseMoveEvent , mousePressEvent , leaveEvent ) , et dans le core de ces evenements tu doit aussi emit une autre fonctions , qui vas utilisé comme un signal du qframe mouseevent .

    je dois retourner à mes ancien outils.

Discussions similaires

  1. Flash Disque non fonctionnel
    Par stanley dans le forum Composants
    Réponses: 2
    Dernier message: 18/07/2006, 12h18
  2. Code non fonctionnel sous IE
    Par Nip dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/06/2006, 14h59
  3. timage non fonctionnel !!
    Par micky13 dans le forum Delphi
    Réponses: 5
    Dernier message: 13/05/2006, 07h21
  4. Update non fonctionnel
    Par kissmytoe dans le forum Access
    Réponses: 7
    Dernier message: 07/03/2006, 18h37
  5. [REPORTS] Order BY non fonctionnel
    Par sdiack dans le forum Reports
    Réponses: 2
    Dernier message: 10/02/2006, 18h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo