Ein qt-widget mit komplett transparentem hintergrund
Brauche ich zum erstellen eines qt-widget, die als Eltern für einige andere widgets, und was Sie bestellen.
Nun, die Frage ist, wie mache ich es den hintergrund komplett transparent?
Dachte ich, es zu tun mögen dieses :
struct Imp
{
Imp( QWidget *parent ) : thisWidget( new QWidget( parent ) )
{
thisWidget->setAttribute( Qt::WA_TranslucentBackground, true );
}
QWidget *thisWidget;
};
Glaubst du, dass ich brauchen, um das Attribut zu setzen, oder wird es funktionieren, ohne es?
- Brauchen Sie wirklich einen transparenten hintergrund, oder ist es ausreichend, haben keinen hintergrund? Das ist ein riesiger Unterschied: mit einem transparenten hintergrund, das OS wird sagen, das zugrunde liegende Fenster zu malen, die Pixel. Ohne einen hintergrund, den OS einfach nur erwartet, dass Sie die Kinder malen die gesamte Fenster.
- Dieses widget ist Plätze in einem Fenster, und nur die Kind-widgets dieses widgets sichtbar sein sollen. Was auch immer hinter diesem widget (wenn nicht von einem Kind-widget) gesehen werden sollte.
- Ich bin mir nicht sicher, ich verstehe diese Frage... standardmäßig in Qt4, ein QWidget ziehen, der nichts für seinen eigenen hintergrund und nur seine Kinder gezeichnet werden.
- Ja, dass die Nähte um die richtige Antwort. Warum hast du die Antwort als Kommentar?
- Ich werde bei einer Antwort, aber ich dachte, ich muss etwas fehlt, da der default-Verhalten ist so leicht zu beobachten, zu arbeiten.
- Mögliche Duplikate von Machen QWidget transparent
InformationsquelleAutor BЈовић | 2010-11-25
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standardmäßig in Qt4, ein QWidget ziehen, der nichts für seinen eigenen hintergrund und nur seine Kinder gezeichnet werden. Wenn Sie überschreiben möchten, dass Sie ausdrücklich sagen muss das widget zu zeichnen, dessen hintergrund über eine seiner Eigenschaften. Beachten Sie, dass einige widgets, abgeleitet von QWidget wird automatisch zeichnen von Hintergründen.
backgroundRole
).Sollten Sie in der Lage sein, alles zu tun, die Zeichnung Anpassung müssen Sie durch ändern der Stil des widgets, ich denke,
funktionieren sollte, stylesheets kann sehr leicht getestet werden, in der designer -
Die Lösung, die für mich gearbeitet (ich war Einstellung einen transparenten hintergrund für eine QTextEditor):
Können Sie anschauen wollen:
und
Weiß nicht, ob es vollständig Ihr problem löst, aber es ist in diesem Artikel diskutiert
Dokumentation ist bei http://doc.qt.nokia.com/4.1/qwidget.html#transparency-and-double-buffering
Die Lösung ist für Qt4.1, sollte aber relevant.