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 :

QWinWidget et effacement du "back"


Sujet :

Qt

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut QWinWidget et effacement du "back"
    Bonjour à tous,

    Dans ma DLL, un programme appelant me passe le hwnd d'une zone et je dois rajouter des composants avec Qt. Pour se faire, j'utilise QWinWidget du package qtwinmigrate.

    Je commence par instancier l'application Qt (comme dans l'exemple sur le site)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    BOOL WINAPI DllMain( HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpvReserved*/ )
     {
         static bool ownApplication = FALSE;
     
         if ( dwReason == DLL_PROCESS_ATTACH )
             ownApplication = QMfcApp::pluginInstance( hInstance );
         if ( dwReason == DLL_PROCESS_DETACH && ownApplication )
             delete qApp;
     
         return TRUE;
     }
    Puis ma fonction qui va remplir la zone de composants
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void MaFonction(HWND hwndZone)
    {
        QWinWidget* pZone = new QWinWidget(hwndZone);
        QHBoxLayout *hbox = new QHBoxLayout( pZone );
     
        QLabel *label = new QLabel( "Enter text:", pZone );
        QLineEdit *edit = new QLineEdit( pZone );
        hbox->addWidget( label );
        hbox->addWidget( edit );
     
        pZone->move( 0, 0 );
        pZone->show();
    }
    Les problèmes commencent à arriver lorsque les éléments Qt que j'intègre possèdent de la transparence. En effet, pour conserver le thème de l'application principale, pour le QLabel, j'ai mis un background transparent, et celui ci est rendu en noir...

    Savez vous comment je peux y remédier ?

    Merci beaucoup,

    A bientôt
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pZone->setWindowFlags(Qt::FramelessWindowHint);
    pZone->setAttribute(Qt::WA_TranslucentBackground, true);
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

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

Discussions similaires

  1. [Shell] Problème avec le Back-quote (ksh)
    Par bob94700 dans le forum Linux
    Réponses: 3
    Dernier message: 27/01/2008, 12h45

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