Seite 1 von 1
[gelöst]QT 4.5: Rahmen eines QMdiSubWindow komplett ..
Verfasst: 15. August 2010 14:24
von Ritchie
Hallo Zusammen,
ich versuche derzeit den Rahmen eines QMdiSubWindow Fenster komplett zu entfernen, aber es bleibt ein Rest von Rahmen über.
Wie bekomme ich den noch weg ?
Die folgenden Flags setze ich schon.
Gleiche Farbe wie Hintergrund wäre auch eine Lösung, nur wie ?
Gruss R.
Verfasst: 15. August 2010 20:57
von Nvidia
versuchs ueber das paint-event
Verfasst: 16. August 2010 17:39
von Ritchie
Hi,
derzeit kenne ich den Paint-Event nur so, das ich auf den Inhalt eines Fensters Einfluss habe, aber nicht auf das Fenster selber (den Rahmen).
Gruss R.
Verfasst: 16. August 2010 18:20
von franzf
Da du nicht weißt, was der Style am Ende alles macht, ohne dich zu fragen, bleibt dir in solchen extremen Anpassungen nur eines: Schreib dir einen eigenen Style

Das muss jetzt kein kompletter Style sein. Entwirf deinen Style als Proxy, der fast überall nur den qApp->style()->xyz() zurück gibt. Nur die Elemente, die du selber Stylen willst, malst du selber/gibst die passenden hints zurück.
http://www.qtcentre.org/wiki/index.php? ... roxy_style
Den Proxy dann aber nur für dein Mdi-Window setzen.
Verfasst: 16. August 2010 20:02
von Ritchie
Das scheint ein Weg zu sein. Sieht zwar sportlich aus, aber ...
Danke für den Tip, hatte sowas irgendwo mal gelesen, aber nicht wieder gefunden, wo ich ansetzen soll.
Gruss Ritchie
Verfasst: 25. August 2010 18:12
von Ritchie
Hallo Zusammen,
habe meine Proxy Class fertig.
Nur wird die Routine
Code: Alles auswählen
void MyMDIStyle::drawPrimitive ( PrimitiveElement element,
const QStyleOption *option,
QPainter *painter,
const QWidget *widget) const
{
if( element == QStyle::PE_FrameWindow )
{
qDebug() << "PE_FrameWindow" ;
}
else
{
ProxyStyle::drawPrimitive ( element, option,painter, widget);
}
}
nicht durchlaufen.
Dachte da an Element:
Code: Alles auswählen
QStyle::PE_FrameWindow ? Frame around a MDI window or a docking window.
Derzeit wird nur:
durchlaufen.
Ich habe das Beispiel von QTCentreWiki genommen und entsprechend angepasst.
Habe die Ursache gefunden:
scheint den drawPrimitive bereits abzuknippsen.
Der Rahmen kommt nicht vom MDI Fenster, sondern von einem
QGraphicsView.
Man benötigt also kein eigenes Style, um den Rahmen abzuschalten.
Reicht vollkommen aus.
Gruss R.