2012-12-23 1 views
4

Je sais déjà comment faire une fenêtre transparente avec Qt Quick 1.0.Mais j'ai commencé récemment à utiliser Qt 5.0 et Qt Quick 2.0 et je ne savais pas comment faire avec il.Comment faire une fenêtre transparente avec Qt Quick 2.0

setAttribute setWindowFlags setStyleSheet

Les fonctions ci-dessus sont éliminés de la QtQuick2ApplicationViewer (QQuickView). Donc je me demande si je peux faire une fenêtre transparente avec Qt Quick 2 ou pas (est-ce parce que c'est basé sur OpenGL?).

Répondre

1

Regardez ici pour une solution possible:

http://code.google.com/p/quickwidget/

Mais, avec Qt 5.3, il est possible d'utiliser le haut-QQuickWidget classe.

+0

Désolé, je n'ai trouvé aucun article sur ce site. – XuHongxu

+0

@XuHongxu: consultez ou consultez le code source! J'ai même écrit un exemple. – user1095108

+0

Merci, je l'ai trouvé. C'est utile! – XuHongxu

4

est ici un code QT5:

QSurfaceFormat surfaceFormat; 
surfaceFormat.setAlphaBufferSize(8); 
viewer.setFormat(surfaceFormat); 
viewer.setClearBeforeRendering(true); 
viewer.setColor(QColor(Qt::transparent)); 
+0

Cela fonctionne bien! Merci. En outre, j'ai utilisé 'viewer.setFlags (Qt :: CustomizeWindowHint);' pour masquer la barre de légende. Mais quand j'ai cliqué sur la zone transparente, elle a quand même répondu à l'événement. Comment y faire face? – XuHongxu

+0

@XuHongxu voir http://stackoverflow.com/a/4930925/721710 pour une solution Windows ... –

+0

Malheureusement, cela ne fonctionne pas sur Mac OSX (Qt 5.0) – andrewrjones