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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    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 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    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 confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    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 confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

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

  5. #5
    Membre chevronné

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    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 confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    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 !

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

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