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 :

Débuter avec Qt

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut Débuter avec Qt
    Bonjour, je suis nouveau, j'essaie actuellement de coder un petit programme en C++.

    Je voudrais, que dans une boîte de dialogue, on demande de mettre un lien, et quand on appuie sur un

    QPushButton, sa ouvre le lien qu'on a saisit dans la zone de texte dans le navigateur par defaut,

    je pensais faire sa avec un QLineEdit et un QPushButton, mais je n'y arrive pas :S .

    Désolé si je ne suis pas clair, je débute

    Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Par défaut
    Ce n'est pas un problème de C++, mais de framework. Je pense que tu auras beaucoup plus de chance d'avoir une réponse dans le forum Qt.
    Ensuite il faudrait que tu nous montres ce que tu as déjà fait, si tu souhaites que l'on t'aide à trouver pourquoi celà ne fonctionne pas.

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 158
    Billets dans le blog
    152
    Par défaut
    Bonjour,

    Vous pouvez le faire avec le faire avec un QPushButton (ou un QLabel)
    Pour le QPushButton il faudra le connecter (connect) avec un slot qui lancera le lien d'une maniere ou un autre.
    Avec le QLabel, faut juste mettre le lien en label ... et faire en sorte que lorsque l'utilisateur clique dessus cela ouvre un lien (voir FAQ Qt ... il y a un setOpenExternalLink())
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    #include <QApplication>
    #include <QLineEdit>
    #include <QPushButton>
    #include <QVBoxLayout>
    #include <QFormLayout>
     
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
        QWidget fenetre;
     
        // Création du layout de formulaire et de ses widgets
     
        QLineEdit *lien = new QLineEdit;
     
        QFormLayout *formLayout = new QFormLayout;
        formLayout->addRow("Votre &lien", lien);
     
     
        // Création du layout principal de la fenêtre (vertical)
     
        QVBoxLayout *layoutPrincipal = new QVBoxLayout;
        layoutPrincipal->addLayout(formLayout); // Ajout du layout de formulaire
     
        QPushButton *boutonQuitter = new QPushButton("Quitter");
        QWidget::connect(boutonQuitter, SIGNAL(clicked()), &app, SLOT(quit()));
        layoutPrincipal->addWidget(boutonQuitter); // Ajout du bouton
     
        fenetre.setLayout(layoutPrincipal);
     
        fenetre.show();
     
        return app.exec();
    }

    Et je n'arrive pas a recuperer la valeur qui a été entrée dans le QLineEdit, et je n'arrive pas non plus a faire un bouton envoyer qui ouvre le lien qui a été entré dans le QLineEdit

    merci.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Par défaut
    Il faudrait peut-être que tu connectes un signal de ton lineEdit à un slot quelconque, si tu veux que quelque chose se passe.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut
    oui, mais j'ai deja essayer, et lors de la compilation, il y a un probleme ...

    A chaque fois que je modifie le code, sa bug

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 158
    Billets dans le blog
    152
    Par défaut
    Il faudrait peut être nous montrer votre essai qui ne compile pas que plutot un code qui compile mais ne fonctionne pas.
    Et si vous nous montrez un code qui ne compile pas ... il faut penser à nous donner aussi les erreurs de compilation ... car je dois le dire, dans le regret mais j'ai cassé ma boule de cristal (et que j'ai toujours pas réparé)
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut
    je vous remercie, j'ai réussi, mais, il me reste un probleme :s voila 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
    #include <QApplication>
    #include <QLineEdit>
    #include <QPushButton>
    #include <QVBoxLayout>
    #include <QFormLayout>
     
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
        QWidget fenetre;
     
        // Création du layout de formulaire et de ses widgets
     
        QLineEdit *lien = new QLineEdit;
     
        QFormLayout *formLayout = new QFormLayout;
        formLayout->addRow("Votre &lien", lien);
     
     
        // Création du layout principal de la fenêtre (vertical)
     
        QVBoxLayout *layoutPrincipal = new QVBoxLayout;
        layoutPrincipal->addLayout(formLayout); // Ajout du layout de formulaire
     
        QPushButton *boutonQuitter = new QPushButton("Quitter", &fenetre);
        QPushButton *boutonEnvoyer = new QPushButton("Envoyer", &fenetre);
        layoutPrincipal->addWidget(boutonEnvoyer);
        layoutPrincipal->addWidget(boutonQuitter); // Ajout du bouton
    QWidget::connect(boutonQuitter, SIGNAL(clicked()), &app, SLOT(quit()));
        fenetre.setLayout(layoutPrincipal);
     
        fenetre.show();
     
        return app.exec();
    }

    Donc, mon problème, maintenant, c'est que je n'arrive pas a recuperer la valeur du QLineEdit, pour ensuite l'ouvrir dans le navigateur quand on clique sur Envoyer, si vous voyez ce que je veux dire ^^

  9. #9
    Membre expérimenté
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Par défaut
    Où est la connection entre le bouton "envoyer" et le slot qui doit recevoir et traiter le signal?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut
    je n'arrive pas a la faire :s exemple ?

  11. #11
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 158
    Billets dans le blog
    152
    Par défaut
    Qu'avez vous essaye ?

    Voici de la documentation: http://matthieu-brucher.developpez.c...t/signal-slot/

    Voila un truc (fait a l'arrache ... non teste)
    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
     
    #include <QApplication>
    #include <QLineEdit>
    #include <QPushButton>
    #include <QVBoxLayout>
    #include <QFormLayout>
     
     void monSlot(void)
     {
    	QMessageBox::information (0,"Coucou","Coucou");
     }
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
        QWidget fenetre;
     
        // Création du layout de formulaire et de ses widgets
     
        QLineEdit *lien = new QLineEdit;
     
        QFormLayout *formLayout = new QFormLayout;
        formLayout->addRow("Votre &lien", lien);
     
     
        // Création du layout principal de la fenêtre (vertical)
     
        QVBoxLayout *layoutPrincipal = new QVBoxLayout;
        layoutPrincipal->addLayout(formLayout); // Ajout du layout de formulaire
     
        QPushButton *boutonQuitter = new QPushButton("Quitter", &fenetre);
        QPushButton *boutonEnvoyer = new QPushButton("Envoyer", &fenetre);
        layoutPrincipal->addWidget(boutonEnvoyer);
        layoutPrincipal->addWidget(boutonQuitter); // Ajout du bouton
    QWidget::connect(boutonQuitter, SIGNAL(clicked()), &app, SLOT(quit()));
    QWidget::connect(boutonEnvoyer, SIGNAL(clicked()), &app, SLOT(monSlot()));
        fenetre.setLayout(layoutPrincipal);
     
        fenetre.show();
     
        return app.exec();
    }
    Je vous suggere de faire au moins une classe car, sans classe vous allez avoir des problemes pour reussir ce que vous voulez.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut
    pourriez-vous m'expliquer comment creer une classe, j'ai deja regardé plusieurs tutos mais je n'y comprends toujours pas grand chose ...

  13. #13
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 158
    Billets dans le blog
    152
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  14. #14
    Membre expérimenté
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Par défaut
    Voici un petit exemple:

    Class Lien :
    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
    #ifndef LIEN_H
    #define LIEN_H
     
    #include "QWidget"
    #include "QLineEdit"
    #include "QPushButton"
     
    class Lien : public QWidget
    {
       Q_OBJECT
    public:
       Lien();
    public slots:
       void recuperelien();
     
    private:
       QLineEdit *m_lien;
       QPushButton *m_boutonQuitter;
       QPushButton *m_boutonEnvoyer;
    };
     
    #endif // LIEN_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
    #include "lien.h"
    #include "QFormLayout"
    #include "QMessageBox"
    Lien::Lien()
    {
       // Création du layout de formulaire et de ses widgets
       m_lien = new QLineEdit;
       QFormLayout *formLayout = new QFormLayout;
       formLayout->addRow("Votre &lien", m_lien);
     
     
       // Création du layout principal de la fenêtre (vertical)
       QVBoxLayout *layoutPrincipal = new QVBoxLayout;
       layoutPrincipal->addLayout(formLayout); // Ajout du layout de formulaire
     
       m_boutonQuitter = new QPushButton("Quitter");
       m_boutonEnvoyer = new QPushButton("Envoyer");
       layoutPrincipal->addWidget(m_boutonEnvoyer);
       layoutPrincipal->addWidget(m_boutonQuitter); // Ajout du bouton
       setLayout(layoutPrincipal);
     
     
       connect(m_boutonQuitter, SIGNAL(clicked()), this, SLOT(close()));
       connect(m_boutonEnvoyer, SIGNAL(clicked()), this, SLOT(recuperelien()));
    }
    void Lien::recuperelien()
    {
       // C'est ici qu'il faut récupérer le lien puis lancer l'application pour l'afficher
       QString MonLien = m_lien->text();
       QMessageBox msgBox(QMessageBox::Warning, tr("Lien"),
                               MonLien, 0, this);
     
       msgBox.exec();
    }
    et le main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <QtGui>
    #include "lien.h"
     
    int main(int argc, char *argv[])
    {
       QApplication app(argc, argv);
       Lien fenetre;
       fenetre.show();
     
       return app.exec();
    }
    Il te reste a implémenter la fonction qui va lancer le navigateur.
    Mais si tu n'as jamais programmer en C++ et que tu n'est pas familiariser avec la notion de langage objet il te faut effectivement commencer par là (perso je trouve le livre de Delannoy sur le C++ vraiment bien).

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut
    merci de ta reponse, je vais essayer et j'vous dit quoi ^^

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut
    Désolé pour le double-post mais, je voudrais savoir comment ecrire un texte avant le lien, exemple:
    http://google.fr/
    soit transformer en:
    http://test.fr/lien=http://google.fr/
    vous me comprené ?

  17. #17
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 72
    Par défaut
    C'est pas claire votre dernière question, vous parlez d'une simple modification au niveau d'une chaîne de carctère?

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut
    Désolé si sa n'etait pas clair, mais j'ai réussi, maintenant, je cherche, quand on clique sur le bouton envoyer, sa, ouvre la page internet et que sa ferme l'appli



    clair ?

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

Discussions similaires

  1. débuter avec Visual .NET
    Par akimmm dans le forum MFC
    Réponses: 4
    Dernier message: 28/10/2005, 04h53
  2. [GridBagLayout] Comment débuter avec ce layout
    Par Bighobbit dans le forum Débuter
    Réponses: 12
    Dernier message: 28/09/2005, 17h13
  3. [MFC je crois] Débuter avec visual c++
    Par flzox dans le forum MFC
    Réponses: 6
    Dernier message: 28/06/2005, 18h31
  4. [JAXP] Débuter avec XML et Java
    Par Fleep dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 04/05/2005, 11h27
  5. Débuter avec Java
    Par reptils dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 11/07/2004, 21h26

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