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 :

Problème d'onglet IHM


Sujet :

Qt

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 5
    Par défaut Problème d'onglet IHM
    Bonjour a tous , je suis actuellement étudiant en BTS IRIS , et je suis sur un projet ou je dois créer et coder un ihm avec Qt sous debian , évidement je suis sous une machine virtuelle.
    Bref mon ihm est sous forme d'onglets et j'ai un petit problème , j'arrive pas a faire en sorte que quand on clique sur le bouton du premier onglet , çà permet d'ouvrir le 2ème onglet , vous allez me dire quel est l’intérêt de faire comme ceci alors on peut très bien cliquer sur l'onglet en question plus facilement, mais bon c'est la façon dont j'ai choisi , le voici ci dessous :
    J'espère que vous allez pouvoir m'aider car la je bloque vraiment et pas que pour sa d'ailleurs , si il y a quelqu'un de qualifié avec l'interface graphique pour que je lui pose des questions au niveau du codage , faite moi signe merci.
    Images attachées Images attachées  

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Au moins deux solutions :
    1. Passer le pointeur du QTabWidget pour pouvoir faire tabWidget->setCurrentIndex(1); dans le slot connecté au signal clicked() du bouton ;
    2. Si tu souhaites faire cela pour chaque onglet, plutôt faire un slot du genre void goToNextTab() au niveau de ton QTablWidget, que tu connecteras au signaux des onglets.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 5
    Par défaut
    Bonsoir ,
    Je suis désolé mais j'arrive pas très bien a comprendre, j'ai certaines difficultés dans le codage .. , j'ai compris qu'il fallait écrire la ligne de code tabWidget->setCurrentIndex(1); dans la méthode de mon bouton mais c'est au niveau du pointeur que je bloque.
    J'ai fait ceci dans la méthode de mon bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void IHM::on_DemarrerParametres_clicked()
     
    {
        QMessageBox::question(this, tr("Epandage"), tr("Voulez vous demarrer l'epandage ?"));
     
        tabWidget->setCurrentIndex(1);
    }

  4. #4
    Invité
    Invité(e)
    Par défaut
    Quand je parlais de la faire passer, j'entendais dans le constructeur vers un membre de ta classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class IHM {
        QTabWidget *tabWidget;
    public:
        IHM(QTabWidget *tabWidget_/* autres éventuels paramètres*/);
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IHM::(QTabWidget *tabWidget_/* autres éventuels paramètres*/) 
      : tabWidget(tabWidget_)
    {
    }
    Tu passes alors ton QTabWidget dans le constructeur lorsque tu instancies ton IHM.
    Dernière modification par Invité ; 22/05/2014 à 23h29.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 5
    Par défaut
    Donc ok le 1er code dans le .h , le second dans le .cpp , mais je ne comprend pas le second, cette méthode , et qu'es qui faut y mettre dedans par rapport au bouton en question et a l'onglet .. j'ai du mal a faire le lien..

  6. #6
    Invité
    Invité(e)
    Par défaut
    Plus exactement c'est le constructeur de ta classe IHM (déjà existant sûrement et qu'il te faut donc compléter avec ce que je t'ai donné).
    Il n'y a rien d'autre à ajouter, si ce n'est ton propre code déjà existant.
    Et ceci permet de garder dans IHM une instance du QTabWidget qui te permet donc de faire tabWidget->setCurrentIndex(1); là où tu le souhaites, en l'occurrence ici dans le slot void IHM::on_DemarrerParametres_clicked()

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 5
    Par défaut
    Bon voici mon point h avec ce que tu ma dit de metre :
    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
     
     
     
     
    class IHM : public QWidget
    {
        Q_OBJECT
     
     QTableView *tableView;
     QTabWidget *tabWidget;
     
    public:
        explicit IHM(QWidget *parent = 0);
        ~IHM();
        const QObject* BoutonParametres;
        const QObject* OngletParametresEpandage;
        int monIHM;
        const QString* liste;
     
       IHM(QTableView *tableView);
       IHM(QTabWidget *tabWidget);
     
     
     
     
    private:
        Ui::IHM *ui;
     
        QDomDocument doc;
        QDomElement mesures;
        QFile file;
        QTextStream out;
     
     
    private slots:
     
        void on_DemarrerParametres_clicked();
        void on_liste_activated(QString );
        void on_CaseNom_cursorPositionChanged(int , int );
        void on_ArretdUrgence_clicked();
     
        void on_Valider_clicked();
        void on_Historique_clicked();
        void on_Enregistrer_clicked();
     
    };
    Ensuite la méthode de mon bouton c'st la même chose et donc quand je compile , je clique sur mon bouton , ça m'ouvre mon message box en me posant la question , je clique sur Ok et ça me ferme de suite la fenêtre au lieu de m'ouvrir l'onglet en question , que faire ..?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Un seul constructeur, pas trois. Tu utilisais jusqu'à présent celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    explicit IHM(QWidget *parent = 0);
    Il te faut donc le modifier en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    explicit IHM(QTabWidget tabWidget_, QWidget *parent = 0);

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 5
    Par défaut
    J'ai fait la modification mais j'ai une erreur dans mon 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
     
     
     
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
     
        IHM monIHM;
     
        monIHM.show();
     
        return a.exec();
     
    }
    Mais je comprend pas l'erreur que j'ai en fait ..
    Images attachées Images attachées  

  10. #10
    Invité
    Invité(e)
    Par défaut
    Problème résolu sur le chat, jojo1312 a utilisé le Designer pour créer l'interface :

    Nom : classes.png
Affichages : 221
Taille : 99,5 Ko

    Il suffisait donc juste d'y accéder par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ui->Commandes->setCurrentIndex(1);

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

Discussions similaires

  1. problème : un onglet disparaît
    Par LMA dans le forum MFC
    Réponses: 5
    Dernier message: 21/07/2006, 08h39
  2. problème : un onglet disparaît
    Par LMA dans le forum VC++ .NET
    Réponses: 0
    Dernier message: 19/07/2006, 15h27
  3. Probléme d'onglet
    Par jojo57 dans le forum Access
    Réponses: 3
    Dernier message: 27/04/2006, 16h49
  4. [CSS] Problème avec onglets
    Par jehlg dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 28/03/2006, 12h15
  5. [ONGLET]Problème d'onglet
    Par jaymz dans le forum IHM
    Réponses: 3
    Dernier message: 18/04/2005, 16h09

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