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

Qt Discussion :

Appellé une fenêtre.


Sujet :

Qt

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut Afficher un menu par la gestion des clics ?
    Bonjour,

    j'ai un problème assez simple à réglé mais que je n'arrive pas...
    Je voudrais appeler une fenêtre depuis une action du clic gauche c'est à dire au lieu de créer deux fois le même code un sous void et l'autre dans l'option du clique gauche

    Détails :

    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
     
    void Tool::iconActivated(QSystemTrayIcon::ActivationReason reason)
    {
       if(reason == QSystemTrayIcon::Trigger)
       {
         QMainWindow* fenAccueil = new QMainWindow;
         uiAccueil.setupUi(fenAccueil);
         fenAccueil->setFixedSize(818,602);   
         createActions();
         fenAccueil->show();
       }
    }
     
    void Tool::accueil()
    {
         QMainWindow* fenAccueil = new QMainWindow;
         uiAccueil.setupUi(fenAccueil);
         fenAccueil->setFixedSize(818,602);   
         createActions();
         fenAccueil->show();
    }
    Donc au lieu de mettre deux fois là même chose...
    Je voudrais faire un connect sur le void accueil soit :

    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
     
    void Tool::iconActivated(QSystemTrayIcon::ActivationReason reason)
    {
       if(reason == QSystemTrayIcon::Trigger)
       {
         execute le void accueil
       }
    }
     
    void Tool::accueil()
    {
         QMainWindow* fenAccueil = new QMainWindow;
         uiAccueil.setupUi(fenAccueil);
         fenAccueil->setFixedSize(818,602);   
         createActions();
         fenAccueil->show();
    }

    Merci beaucoup !

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Salut

    ben tu fait juste ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void Tool::iconActivated(QSystemTrayIcon::ActivationReason reason)
    {
       if(reason == QSystemTrayIcon::Trigger)
       {
          accueil();
       }
    }
    ??? ou j'ai pas compris ton problème

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut
    Désoler j'ai pas copier le bon bout de code...

    Enfaite je voudrais faire légèrement plus complexe...

    Enfaite je voudrais ajouter une fonction de gestion de clic...
    C'est à dire :

    Clic droit => Menu
    Clic gauche => Même menu que le clic droit.
    Double clic gauche => Action.

    Donc je sais qu'il fait faire le double clic avec : QSystemTrayIcon::DoubleClick
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     void Window::iconActivated(QSystemTrayIcon::ActivationReason reason)
     {
         switch (reason) {
         case QSystemTrayIcon::Trigger:
         case QSystemTrayIcon::DoubleClick:
             break;
         default:
             ;
         }
     }
    Mais c'est pas si simple avec les switch, je n'ai pratiquement jamais utiliser cette forme doc je mis perd...

    Voici mon 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    void Tool::iconActivated(QSystemTrayIcon::ActivationReason reason)
    {
       if(reason == QSystemTrayIcon::Trigger)
       {
         accueil();
       }
    }
     
    void Tool::createTrayIcon()
    {
    	// creation de quelques actions
    	QAction *quitAction = new QAction(tr("&Quitter"), this);
    	connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
     
    	// ajout dans le menu
    	QAction *aboutAction = new QAction(tr("A propos"), this);
    	connect(aboutAction, SIGNAL(triggered()), this, SLOT(about()));
     
    	// ajout dans le menu
    	QAction *configAction = new QAction(tr("Configuration"), this);
    	connect(configAction, SIGNAL(triggered()), this, SLOT(config()));
     
    	// ajout dans le menu
    	QAction *accueilAction = new QAction(tr("Accueil"), this);
    	connect(accueilAction, SIGNAL(triggered()), this, SLOT(accueil()));
     
    	// ajout dans le menu
    	QAction *siteAction = new QAction("site.fr", this);
    	siteAction->setFont(QFont("Arial", 12, QFont::Bold));
    	connect(siteAction, SIGNAL(triggered()), this, SLOT(site
    ()));
     
    	// ajout dans le menu
    	QAction *forumAction = new QAction("Forum site", this);
    	connect(forumAction, SIGNAL(triggered()), this, SLOT(forum()));
     
    	// ajout dans le menu
    	QAction *meteoAction = new QAction("Météo", this);
    	connect(meteoAction, SIGNAL(triggered()), this, SLOT(meteo()));
     
    	// ajout dans le menu
    	QAction *newsAction = new QAction("News", this);
    	connect(newsAction, SIGNAL(triggered()), this, SLOT(news()));
     
    	// ajout dans le menu
    	QAction *aideAction = new QAction("Aide", this);
    	connect(aideAction, SIGNAL(triggered()), this, SLOT(aide()));
     
     
        trayIconMenu->addAction(siteAction);
        trayIconMenu->addSeparator();
        trayIconMenu->addAction(forumAction);
        trayIconMenu->addAction(meteoAction);
        trayIconMenu->addAction(newsAction);
        trayIconMenu->addAction(aideAction);
        trayIconMenu->addSeparator();
        trayIconMenu->addAction(accueilAction);
        trayIconMenu->addAction(configAction);
        trayIconMenu->addAction(aboutAction);
    	trayIconMenu->addAction(quitAction);
     
    	// zone de notification et ajout du menu
    	setContextMenu(trayIconMenu);
    	connect(this, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
     
    	show();
    }

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut
    Personne pourrait m'aider ?

  5. #5
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    Pour la syntaxe du switch:
    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
     
    void Window::iconActivated(QSystemTrayIcon::ActivationReason reason)
    {
        switch (reason)
        {
        case QSystemTrayIcon::Context:
        case QSystemTrayIcon::Trigger:
             // menu du clic gauche et droit
             break;
     
        case QSystemTrayIcon::DoubleClick:
            //menu du double clic
            break;
        default:
            break;
        }
    }
    Bon je suis plus sûr que QSystemTrayIcon::Context correspond au clic droit mais je crois bien que c'est ça.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut
    Désolé mais j'arrive pas à faire ce que je veux avec ton code il n'arrive pas à compiler a chaque fois...

    Si tu as une idée... Sinon ton code marche mais pour faire ce que je veux faire ça bug...

    PS : je voudrais savoir à quoi sert le "default" ?.

    Merci !

  7. #7
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    Default ici ne sert à rien, je l'ai laissé parce que tu l'avais mis dans ton code plus haut. Dans le cas général, ça sert à exécuter du code quand tu n'entres pas dans les cas précédents (ceux des case).

    Si ça ne compile pas, tu peux poster le message d'erreur avec au moins la partie du code concernée ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut
    Ça compile maintenant :D ! ça ne fonctionner pas parce que j'ai fais une erreur de codage surement j'ai enlever le code pour afficher le menu et ça compile...

    Voici mon code qui compile qui marche :

    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
    38
    39
    40
    void Tool::iconActivated(QSystemTrayIcon::ActivationReason reason)
    {
        switch (reason)
        {
        case QSystemTrayIcon::Context:
        case QSystemTrayIcon::Trigger:
             // menu du clic gauche et droit
             break;
     
        case QSystemTrayIcon::DoubleClick:
            {
              int i = uiConfig.comboBox_clic_gauche->currentIndex();
              if(i == 0)
                accueil();
              else if(i == 1)
                site();
              else if(i == 2)
                forum();
              else if(i == 3)
                news();
              else if(i == 4)
                forum_presentation();
              else if(i == 5)
                forum_general();
              else if(i == 6)
                association();
              else if(i == 7)
                forum_annonces();
              else if(i == 8)
                forum_recherche();
              else if(i == 9)
                forum_perdu();
              else if(i == 10)
                forum_bugs();
              else
                programme();
            }
            break;
        }
    }

    Quelle est le vrai code pour que si je clique une fois il affiche le menu ? ça me pose problème...

    PS : je viens de tester ce code est j'ai un souci... Mon code pour le système de changement d'action au double clic...

    Enfaite il marche nikel quand je le lance, pas de problème mais si je quitte et relance l'application je fait un double clic il va me dire ".exe a rencontré un problème de doit fermer... ne pas envoyer" C'est la fenêtre de windows qui dit quand un programme bug et doit quitter.

    Savez vous pourquoi ?


    Sinon merci beaucoup kinji1 !

  9. #9
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    J'aurais une question sur l'utilisation de la combobox. En fait pour moi une tray icon a plutôt tendance à afficher des menus (qui peuvent varier selon le clic) et après on choisit l'option que l'on veut réaliser.
    Comme j'ai l'impression que c'est ce que tu veux faire, vu le grand if avec la dizaine de choix, je me dis que tu devrais créer un QMenu, avec une QAction pour chaque truc que tu veux mettre dans ton menu et tu connectes le bon signal avec tes fonctions à appeler. Et quand tu reçois le clic tu affiches juste ton menu.

    Pour le plantage, utilise un debugger pour trouver précisément d'où vient l'erreur. Puisque ça semble arriver quand tu double clique, c'est peut-être parce que uiConfig.comboBox_clic_gauche est nul et ne peut alors appeler la fonction currentIndex().

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut
    J'ai déjà un menu de fait créer. Actuellement pour lacer ce menu qui est fait avec des QAction comme tu as dit, je l'ai bien fait comme les exemple il marche nikel mais bon avou que c'est lègerement fatiguant de :

    Clic une fois gauche affiche la fenetre donc le double clic affiche deux fois la fenetre...

    Donc je voudrais que :

    Clic droit ça affiche mon menu que j'ai actuellement, ce qui ne pose pas de problème car c'est actuellement ce qu'il fait.

    Clic gauche ça affiche mon menu le même que celui du clic droit, ce que je n'arrive pas à faire...

    Double clic ça affiche ou exécute une action voulu, mais c'est action sont défini par l'user car s'il veut que le double clic ouvre la page d'accueil du site alors il choisit
    "site();
    else if(i == 2)"

    Ce qui fait que maintenant enfin normalement il lance à chaque fois la page d'accueil au double clic gauche !

    Ce que j'arrive à faire mais avec un bug si on redémarre l'application...

    Pourrais tu m'en dire plus pour savoir d'où vient le problème avec un système de debbuggage car là je séche un peu...

    Enfaite ce que je veux c'est laisser le choix au user de choisir l'action déclencher au double clic mais pas au simple clic les simple clic (gauche et droit) doivent afficher le menu tray icon !

    Merci !

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut
    Je viens de changer le code j'ai mis un Switch au lieu d'une conditions c'est mieux moins bien ? Je dois changer quelque truc ?

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    void Tool::iconActivated(QSystemTrayIcon::ActivationReason reason)
    {
        switch (reason)
        {
        case QSystemTrayIcon::Context:
        case QSystemTrayIcon::Trigger:
             break;
     
        case QSystemTrayIcon::DoubleClick:
            {
              int i = uiConfig.comboBox_clic_gauche->currentIndex();
     
        switch (i)
               {
                case 0:
                  accueil();
                  break;
                case 1:
                  site();
                  break;
                case 2:
                  forum();
                  break;
                case 3:
                  news();
                  break;
                case 4:
                  forum_presentation();
                  break;
                case 5:
                  forum_general();
                  break;
                case 6:
                  association();
                  break;
                case 7:
                  forum_annonces();
                  break;
                case 8:
                  forum_recherche();
                  break;
                case 9:
                  forum_perdu();
                  break;
                case 10:
                  forum_bugs();
                  break;
                case 11:
                  programme();
                  break;
                default:
                  accueil();
                  break;
                }
            }
            break;
        }
    }
    Merci !

  12. #12
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    Ok, j'ai compris le problème et le coup de la combobox!
    Si je ne me trompe pas, tu as créé un menu (pour le clic droit) et tu l'as appelé setContextMenu() de ton QSystemTrayIcon avec. Donc ça marche pour le clic droit (sans passer par iconActivated()) mais pas pour le clic gauche puisque il n'y a rien de codé.
    Essaie de mettre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void Tool::iconActivated(QSystemTrayIcon::ActivationReason reason)
    {
        switch (reason)
        {
        case QSystemTrayIcon::Trigger:
        {
             QMenu* menu = contextMenu();
             if(menu)
                 menu->popup(QCursor::pos());    // La position d'affichage est à tester je l'ai mis au feeling.
        }
             break;
    
    /// la suite du switch
    Il n'y a plus besoin de QSystemTrayIcon::Context: puisque ça passe par setContextMenu(). Vérifie aussi qu'il ne s'affiche pas n'importe où mais bien près de l'icone.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut
    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
    Setting up a MinGW/Qt only environment...
    -- QTDIR set to D:\Qt\4.3.3
    -- PATH set to D:\Qt\4.3.3\bin
    -- Adding D:\MinGW\bin to PATH
    -- Adding C:\WINDOWS\System32 to PATH
    -- QMAKESPEC set to win32-g++
     
    D:\Sources>make
    mingw32-make -f Makefile.Release
    mingw32-make[1]: Entering directory `D:/Sources'
    g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT
    -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS
    _QMAIN -I"..\..\..\Qt\4.3.3\include\QtCore" -I"..\..\..\Qt\4.3.3\include\QtCore"
     -I"..\..\..\Qt\4.3.3\include\QtGui" -I"..\..\..\Qt\4.3.3\include\QtGui" -I"..\.
    .\..\Qt\4.3.3\include" -I"." -I"d:\Qt\4.3.3\include\ActiveQt" -I"release" -I"."
    -I"..\..\..\Qt\4.3.3\mkspecs\win32-g++" -o release\tool.o tool.cpp
    tool.cpp: In member function `void Tool::iconActivated(QSystemTrayIcon::Activati
    onReason)':
    tool.cpp:35: error: jump to case label
    tool.cpp:30: error:   crosses initialization of `QMenu*menu'
    tool.cpp:83: warning: enumeration value `Unknown' not handled in switch
    tool.cpp:83: warning: enumeration value `Context' not handled in switch
    tool.cpp:83: warning: enumeration value `MiddleClick' not handled in switch
    mingw32-make[1]: *** [release/tool.o] Error 1
    mingw32-make[1]: Leaving directory `D:/Sources'
    mingw32-make: *** [release] Error 2
    Bon... C'est pas top top ^^, enfaite je le dissai pas mais j'ai eu plusieurs fois ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    warning: enumeration value `Unknown' not handled in switch
    tool.cpp:83: warning: enumeration value `Context' not handled in switch
    tool.cpp:83: warning: enumeration value `MiddleClick' not handled in switch
    Y a t-il une façon qui serait plus pratique, qui marche sûr et qui ne bug pas ^^ je rêve peut être mais bon... En tout cas merci beaucoup pour ton aide ça fait trop plaiz !

  14. #14
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    C'est moi qui est fait une erreur bête, je la fais souvent d'ailleurs celle-là mais on s'en rend bien vite compte à la compilation. J'ai modifié le code précédent (c'est en rouge les modifications), en fait on peut pas déclarer une variable dans un switch alors il faut mettre le tout dans un bloc.

    Ca devrait retirer les erreurs. Pour les warnings, rajoute le defaut: avec un break derrière, comme plus haut, même si ça va pas servir à grand chose.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut


    J'ai corrigé mais j'ai toujours l'erreur du Warning...
    Sauf si je rajoute le default les erreurs n'apparaissent plus.

    Ensuite :
    - Le clic droit affiche bien comme avant le bon menu.
    - Le clic gauche affiche bien le même menu MAIS il bug lorsque que je clique gauche dessus hop ! le menu s'affiche mais si on clique à côté rien à faire il veut pas enlever ce menu...
    - Le double clic gauche toujours le même problème avec le buggage, il ouvre l'action voulu que est seulement que lorsqu'on va avant dans la fenêtre de configuration et que l'on choisit une action après il faut recommencer à chaque démarrage de l'application car sinon buggage le programme doit quitter !

    Voici le 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    void Tool::iconActivated(QSystemTrayIcon::ActivationReason reason)
    {
        switch (reason)
        {
        case QSystemTrayIcon::Trigger:
        {
             QMenu* menu = contextMenu();
             if(menu)
                 menu->popup(QCursor::pos());    // La position d'affichage est à tester je l'ai mis au feeling.
        }
             break;
     
        case QSystemTrayIcon::DoubleClick:
            {
              int i = uiConfig.comboBox_clic_gauche->currentIndex();
     
        switch (i)
               {
                case 0:
                  accueil();
                  break;
                case 1:
                  site();
                  break;
                case 2:
                  forum();
                  break;
                case 3:
                  news();
                  break;
                case 4:
                  forum_presentation();
                  break;
                case 5:
                  forum_general();
                  break;
                case 6:
                  association();
                  break;
                case 7:
                  forum_annonces();
                  break;
                case 8:
                  forum_recherche();
                  break;
                case 9:
                  forum_perdu();
                  break;
                case 10:
                  forum_bugs();
                  break;
                case 11:
                  programme();
                  break;
                default:
                  accueil();
                  break;
                }
            }
            break;
            default:
                  break;
        }
    }
    Sinon merci encore

  16. #16
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    - Pour le coup du clic gauche c'est vrai, c'est même logique vu que jamais on lui dit de ne plus s'afficher. Par contre j'ai pas de solution pour le moment.

    - Mets le premier default: (celui au niveau su switch(reason)) après tous les case. Je sais pas si c'est nécessaire, et j'ai pas envie de vérifier, mais c'est bien plus logique.

    - Pour le double clic, le plantage vient de uiConfig.comboBox_clic_gauche qui doit être nul. Vu que tu veux stocker les valeurs de la configuration d'une exécution du programme à l'autre il faut les stocker quelque part. Utilise par exemple QSettings, c'est fait pour ça. Là ça plante parce qu'il essaie d'accéder à la combobox qui a pas du être encore crée, puisque la fenêtre de n'a pas encore été affichée.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut
    J'arrive pas du tout à garder en mémoire la valeur de la combox après pas mal d'essai toujours aucun résultat...


    PS : Je ne pense pas qu'avec QSettings ça ne marche.

  18. #18
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    Il marche pas le code suivant (dans le cas d'une QString à stocker) ? Pour les autres types c'est pas plus dur, vu que ça utilise des QVariant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //lecture 
    QSettings config("My Company", "My App");
    QString storedString = config.value("key", "").toString();
     
    ...
     
    //écriture
    QSettings config("My Company", "My App");
    config.setValue("key", stringToStore);

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut
    Tu stok la valeur dans le registre enfaite ?

  20. #20
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    Ben sous Windows par défaut oui, ça va dans le registre.
    Mais si ça te va pas, tu prends un autre constructeur de QSettings où tu règles le format à QSettings::IniFormat. Y a même un constructeur où on peut spécifier le chemin du fichier à utiliser.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Appeler une fenêtre
    Par vg-matrix dans le forum Windows Forms
    Réponses: 9
    Dernier message: 15/12/2009, 15h00
  2. Réponses: 4
    Dernier message: 04/04/2007, 10h37
  3. Réponses: 12
    Dernier message: 03/03/2007, 00h52
  4. [C#] Comment appeler une fenêtre modale dans un autre thread ?
    Par Pilloutou dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/10/2006, 11h19
  5. Appeler une fenêtre DOS en arrière-plan
    Par Efpoint dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 29/09/2006, 10h00

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