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 :

Créer une fenêtre


Sujet :

Qt

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 19
    Points : 17
    Points
    17
    Par défaut Créer une fenêtre
    Salut à tous
    je souhaiterai créer mes propres fentres graphique avec qt mais je sais pas comment faire. Je ne veux plus des fenetres avec le style Windows, je souhaite recréer mes propres fentres
    comment dois je faire car je débute avec qt
    Complément : je développe sous Dev Cpp
    Merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 669
    Points
    10 669
    Billets dans le blog
    3
    Par défaut
    Tu dérives QWidget et surcharges paintEvent pour dessiner la fenêtre de ton choix.
    A moins que tu veuilles créer ton propre moteur de style, sans ce cas inspire toi des styles existants (voir la doc de QStyle : http://qt.developpez.com/doc/4.1/qstyle/)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    salut j'ai mis le code que j'ai fais
    mais qd j'insère l'image y'a rien j'obtien une fentre windows standart
    donc peux tu corriger mon code stp
    merci

    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
     
    #include "test.h"
     
    //----------------------------
    test :: test(QWidget * parent) : QWidget(parent){
         QString objChemin = "C://fond.bmp" ;
     
         ptrPixmap = new QPixmap() ;
         bool test ;
         int depth ;
         test = ptrPixmap->load(objChemin,0,Qt::AutoColor) ;
         ptrMessage = new QMessageBox ("Application Name",
                               "",
                               QMessageBox::Information,
                               QMessageBox::Ok,
                               QMessageBox::NoButton,
                               QMessageBox::NoButton);
     
     
         if(test = true){
                 ptrMessage->setText("ok") ;
                 ptrMessage->exec() ;
         }else{
                 ptrMessage->setText("erreur") ;
                 ptrMessage->exec() ;  
         }    
     
         depth = ptrPixmap->depth() ;
         if(depth == 0){
                  ptrMessage->setText("depth = 0") ;
                  ptrMessage->exec() ;
         }else{
                  ptrMessage->setText("depth != 0") ;
                  ptrMessage->exec() ;
         }                       
         ptrBitmap = new QBitmap(*ptrPixmap) ;
         ptrRegion = new QRegion(*ptrBitmap) ;
         QPoint objPA(20,20) ;
         QPoint objPB(200,200) ;
         QRect objRect(objPA,objPB) ;
         ptrPaint = new QPaintEvent(objRect) ;
         update() ;
         delete ptrMessage ; 
         ptrMessage = NULL ;
    }
    test :: ~test(){
         delete ptrPaint ;
         ptrPaint = NULL ;
         delete ptrRegion ;
         ptrRegion = NULL ;
         delete ptrBitmap ;
         ptrBitmap = NULL ;
         delete ptrPixmap ;
         ptrPixmap = NULL ;
    }
    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
     
    #ifndef TEST_H
    #define TEST_H
    #include <QWidget.h>
    #include <qpixmap.h>
    #include <qbitmap.h>
    #include <QPaintEvent>
    #include <QMessageBox>
    #include <qpoint>
    #include <qrect>
     
    //----------------------
    class test : public QWidget {
          private :
                  QPaintEvent * ptrPaint ; //ptr permettant de créer la fentre à dessiner
                  QRegion * ptrRegion ; //ptr  pour créer une région pour dessiner
                  QPixmap * ptrPixmap ; //créé  la base de l'i
                  QBitmap * ptrBitmap ;             
                  QMessageBox * ptrMessage ;
          public :
                 test(QWidget * parent) ;
                 ~test() ;
     
    };
    //------------------
    #endif
    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
     
    #include <QApplication>
    #include <QPushButton>
    #include <QtGUI>
    #include "test.h"
     
    int main(int argc, char *argv[])
    {
        //QApplication::setStyle(new QWindowsXPStyle);
     
        QApplication app(argc, argv);
        test * ptrTest ;
        ptrTest = new test(0) ;
        /*QPushButton hello("Hello world!");
        hello.resize(100, 30);
        
        hello.show();*/
        ptrTest->show() ;
        return app.exec();
    }

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 669
    Points
    10 669
    Billets dans le blog
    3
    Par défaut
    Tu dois dessiner dans paintEvent, que Qt appelle pour toi. C'est pas à toi à faire quelque chose avec QPaintEvent ou je ne sais quoi.
    Crée la fonction
    void test::paintEvent ( QPaintEvent * event )
    qui redéfinit celle héritée de QWidget. C'est là que tu vas mettre ton code de dessin.
    Je te conseille de bien étudier les exemples de la doc:
    http://qt.developpez.com/doc/4.1/exa...nting-examples

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    merci d'avance je vais tester cela de suite et je te dirais koi
    A+

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Je comprend pas tout
    je souhaite remplacer la fentre windows par une image dont j'ajouterai des boutons moi meme comment dois-je faire ?
    Merci

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Ragarde l'example NorvegianStyle, c'est sans doute ça que tu veux faire.

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 669
    Points
    10 669
    Billets dans le blog
    3
    Par défaut
    Tu peux influencer le type de la fenêtre en précisant certains flags à sa création (2° paramètre de QWidget).
    http://qt.developpez.com/doc/4.1/qwidget/#qwidget
    voir Qt::FramelessWindowHint en particulier.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    salut
    ce que je souhaite faire c'est par exemple une fentre dans le style de bitdefender ou winamp ou sonic. Donc je suis perdu et je sais pas comment faire. VOiala merci pour votre aide

  10. #10
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 669
    Points
    10 669
    Billets dans le blog
    3
    Par défaut
    Faut pas brûler les étapes. Commence par faire quelque chose qui marche avec une interface simple, tu feras évoluer ensuite quand tu auras acquis de l'expérience

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Salut j'ai deja compris le fonctionnement des styles et de conception de fentre en utilisation les widgets mais la je souhaite réellemnt pouvoir concevoir mes propres fenetres, c'est à dire plus de fenetres windows !!!
    Stp c'est très importat merci bien

  12. #12
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 669
    Points
    10 669
    Billets dans le blog
    3
    Par défaut
    Je sais pas ce que tu appelles fenêtre Windows.

  13. #13
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Si tu utilises un de styles prédéfinis, tu peux commencer avec le designer pour te faire la main. Si ce n'est pas le cas, commence tout de même à travailler avec des interfaces simples car concevoir son propre style, c'est dériver le QPaintEngine et faire pas mal de travail dessus, donc si tu n'as pas assimilé les particularités de Qt, ça va être difficile

Discussions similaires

  1. Créer une fenêtre avec la couleur par defaut d'une dialog
    Par NicolasJolet dans le forum Windows
    Réponses: 2
    Dernier message: 03/08/2006, 16h01
  2. Créer une fenêtre sans bords
    Par N3odyme dans le forum C++
    Réponses: 2
    Dernier message: 06/07/2006, 00h27
  3. [C# 2.0] Créer une fenêtre non redimensionnable
    Par sqlnoob dans le forum Windows Forms
    Réponses: 4
    Dernier message: 26/06/2006, 11h22
  4. Réponses: 2
    Dernier message: 08/06/2006, 15h49
  5. Créer une fenêtre flottante qui ne peut avoir le focus
    Par BestofMac dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 10h46

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