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 :

Superposer un widget translucide à un QGlViewer


Sujet :

Qt

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 60
    Points : 78
    Points
    78
    Par défaut Superposer un widget translucide à un QGlViewer
    Bonjour,

    J'aimerai savoir s'il est possible de superposer un QWidget (qui serait dans mon besoin translucide) à un qglviewer (qui serait donc derrière le qwidget).

    Actuellement, voici ce que je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    QWidget *main_widget = new QWidget();
    QGridLayout *glGrid = new QGridLayout();
    glGrid->addWidget(glWidget,0,0);
    glGrid->addWidget(sketching_widget,0,0);
    main_widget->setLayout(glGrid);
    Grâce à un raccourci, je peux activer ou désactiver la visualisation du sketching_widget, et celui-ci se superpose alors (ou non) à ma visualisation opengl. cet sketching_widget est censé devenir une zone de tracé d'utilisateur (des courbes)

    Le problème que je rencontre est que ce qui s'affiche actuellement est totalement noir (lorsque je fais sketching_widget->setVisible(true)).

    Est-il possible de faire cela et d'avoir en plus une composante alpha permettant de garder la visualisation openGL tout en ayant la possibilité de faire des tracés ?

    Merci d'avance,

    Muska17

  2. #2
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Points : 5 545
    Points
    5 545
    Par défaut
    Bonjour,

    Si votre système permet la transparence (ce qui n'est pas le cas par défaut sur certaines machines virtuelles ayant un Linux dessus), alors c'est possible. Il vous suffit de plusieurs lignes à ajouter sur les widgets à rendre transparent (ne pas oublier les widgets en fond) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    setStyleSheet("background:transparent;"); // sur tous les widgets à rendre transparents
    setAttribute(Qt::WA_TranslucentBackground); // en théorie uniquement sur le widget en haut de l'arborescence à rendre transparent (le widget qui contient tous les autres)
    setWindowFlags(Qt::FramelessWindowHint); // de même
    Bonne soirée,
    Louis
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 60
    Points : 78
    Points
    78
    Par défaut
    Bonjour et merci pour votre réponse,

    Après avoir vérifié et testé votre solution il semblerait que mon système ne gère effectivement pas la transparence ... J'ai donc laissé tombé cette idée et j'ai intégré lé système de sketching directement dans ma visualisation openGL.

    Bonne soirée,

    Muska17

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/02/2013, 15h59
  2. [2D/3D] superposer des widgets sur un QGLWidget ?
    Par divide dans le forum Qt
    Réponses: 2
    Dernier message: 10/05/2010, 07h59
  3. [SWT]Eclipse Java : swt.widgets.Table
    Par watson dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 01/10/2003, 09h07

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