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 :

Action sur un bouton

  1. #1
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut Action sur un bouton
    Bonjour, pouvez-vous m'aider à résoudre les erreurs suivantes ?

    Code VB : 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
    1>------ Début de la génération*: Projet*: MyProject, Configuration*: Debug Win32 ------
    1>  	"C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\nmake.exe" -f Makefile.Debug
    1>  	cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"c:\Qt\4.7.3\include\QtCore" -I"c:\Qt\4.7.3\include\QtGui" -I"c:\Qt\4.7.3\include" -I"." -I"c:\Qt\4.7.3\include\ActiveQt" -I"debug" -I"c:\Qt\4.7.3\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\AIRRIV~1\AppData\Local\Temp\nmB5A0.tmp
    1>  
    1>  Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
    1>  Copyright (C) Microsoft Corporation. Tous droits rÚservÚs.
    1>  
    1>  
    1>  Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
    1>  Copyright (C) Microsoft Corporation. Tous droits rÚservÚs.
    1>  
    1>  MaFenetre.cpp
    1>  	link /LIBPATH:"c:\Qt\4.7.3\lib" /NOLOGO /DEBUG /MANIFEST /MANIFESTFILE:"debug\MyProject.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /OUT:debug\MyProject.exe @C:\Users\pc~1\AppData\Local\Temp\nmC8D3.tmp 
    1>  LINK : debug\MyProject.exe introuvable ou non gÚnÚrÚ par la derniÞre Údition de liens incrÚmentielleá; Údition de liens complÞte en cours
    1>MaFenetre.obj : error LNK2019: symbole externe non rÚsolu __imp__SetForegroundWindow@4 rÚfÚrencÚ dans la fonction "public: void __thiscall MaFenetre::AppuyerBouton(void)" (?AppuyerBouton@MaFenetre@@QAEXXZ)
    1>MaFenetre.obj : error LNK2019: symbole externe non rÚsolu __imp__FindWindowW@8 rÚfÚrencÚ dans la fonction "public: void __thiscall MaFenetre::AppuyerBouton(void)" (?AppuyerBouton@MaFenetre@@QAEXXZ)
    1>debug\MyProject.exe : fatal error LNK1120: 2 externes non rÚsolus
    1>NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\link.EXE"'á: code retour '0x460'
    1>  Stop.
    1>NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\nmake.exe"'á: code retour '0x2'
    1>  Stop.
    1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: La commande "qmake & nmake" s'est arrêtée avec le code 2.
    ========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========

    Voici mon projet :

    main.cpp
    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
     
    #include <QtGui/QApplication>
    #include "MaFenetre.h"
     
     
    typedef char CHAR;
    typedef wchar_t WCHAR;
     
    #ifndef UNICODE
    typedef CHAR TCHAR;
    #else
    typedef WCHAR TCHAR;
    #endif
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
        MaFenetre fenetre;
        fenetre.show();
     
        return app.exec();
    }
    MaFenetre.cpp
    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
     
    #include "MaFenetre.h"
     
    MaFenetre::MaFenetre() : QWidget()
    {
        setFixedSize(200, 100);
     
        m_slider = new QSlider(Qt::Horizontal, this);
        m_slider->setRange(200, 600);
        m_slider->setGeometry(10, 60, 150, 20);
     
        QObject::connect(m_slider, SIGNAL(valueChanged(int)), this, SLOT(AppuyerBouton()));
    }
     
    void MaFenetre::AppuyerBouton()
    {
    	HWND hBlocNotes = FindWindow(TEXT("blocnotes"), NULL);
    	Sleep(5000);
    	SetForegroundWindow(hBlocNotes);
    	Sleep(5000);
    }
    MaFenetre.h
    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
    33
    34
    35
    36
    37
     
    #ifndef DEF_MAFENETRE
    #define DEF_MAFENETRE
     
    #include <QtGui/QApplication>
    #include <QtGui/QWidget>
    #include <QtGui/QPushButton>
    #include <QtGui/QLCDNumber>
    #include <QtGui/QSlider>
    #include <QtGui/QMessageBox>
    #include <iostream>
    #include <stdio.h>
    #include "windows.h"
    #include <QtGui/QKeyEvent>
     
    class MaFenetre : public QWidget
    {
        Q_OBJECT
     
        public:
        MaFenetre();
     
        public slots:
        void AppuyerBouton();
     
     
     
        signals:
        void agrandissementMax();
     
        private:
        QSlider *m_slider;
     
     
    };
     
    #endif
    En laissant la fonction MaFenetre::AppuyerBouton vide, ça compile sans erreur mais mon bouton ne réagit évidemment pas aux actions.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void MaFenetre::AppuyerBouton() {}
    Peut t'on mexpliquer ?

  2. #2
    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
    Il faut linker ton projet avec les fichiers d'import de l'API Win32, là où sont définies les deux fonctions système que tu utilises.
    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 !

  3. #3
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Comment "linker" la lib ?

  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
    Dans le fichier pro :

    (À toi de savoir par quoi remplacer xxx, je n'ai jamais utilisé l'API Win32).

    http://qt.developpez.com/doc/latest/...eference/#libs
    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
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    user32.lib je pense.

  6. #6
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Alors j'ai bien inclus la librairie.

    Le programme se lance, mais lorsque je clic sur le boutton le programme freeze.

    Voici l'erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'MyProject.exe'*: Chargé 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7600.16661_none_ebfb56996c72aefc\comctl32.dll', Cannot find or open the PDB file
    Le programme '[4824] MyProject.exe: Natif' s'est arrêté avec le code 0 (0x0).

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 52
    Par défaut
    Juste pour être sur que le problème ne se situe pas la :

    peut tu tester si hBlocNotes est différent de null avant de vouloir le mettre en avant plan :
    par ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(hBlocNotes) {
    	SetForegroundWindow(hBlocNotes);
    } else {
    qWarning()<<"ah ben non ca existe pas";
    }
    en incluant bien sur QDebug, et en mettant Qt+= console dans le .pro et en refaisant un coup de qmake pour tout remettre d'applomb...

    PS. c'est généralement une mauvaise idée de toucher aux pointeurs pouvant etre nul sans les tester avant

  8. #8
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    thebarbarius : et qu'est-ce que ça donne quand tu compiles en release ? sois le plus précis possible dans ta réponse.

  9. #9
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Finalement sa semble marcher, meme si le programme freeze au debut, fallait juste attendre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Action sur un bouton..Je comprends plus rien du tout!
    Par koolway dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 26/04/2006, 10h17
  2. Action sur un bouton
    Par DarkHope dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 25/04/2006, 15h54
  3. Action sur un bouton
    Par brasco06 dans le forum Composants
    Réponses: 1
    Dernier message: 19/11/2005, 20h15
  4. [debutant] action sur un bouton
    Par EssaiEncore dans le forum ASP
    Réponses: 22
    Dernier message: 18/02/2005, 14h02
  5. [Flash MX] Action sur un bouton
    Par WriteLN dans le forum Flash
    Réponses: 9
    Dernier message: 20/10/2003, 14h01

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