Problem mit Phonon::VideoWidget

Alles rund um die Programmierung mit Qt
Antworten
yarikata
Beiträge: 22
Registriert: 17. Mai 2011 16:40

Problem mit Phonon::VideoWidget

Beitrag von yarikata »

Hallo,

ich habe folgendes Problem:
In meinen Programm kann ich keinen StyleSheet dem Widget zuweisen.
Der Grund warum ich das nicht kann, habe ich schon herausgefunden:

Code: Alles auswählen

this->setWindowFlags(Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_TranslucentBackground);
Damit entferne ich zwar wie gewünscht den Rahmen und mache den Hintergrund unsichtbar, jedoch wird das Widget durchsichtig!

Wie kann ich das umgehen, ohne dabei den rahmenlosen Effekt zu verlieren?



matane
Zuletzt geändert von yarikata am 29. Juni 2011 07:31, insgesamt 1-mal geändert.
Exasperation
Beiträge: 186
Registriert: 11. März 2009 18:00
Wohnort: VS

Beitrag von Exasperation »

Das ist nicht das Standardverhalten von Qt::FramelessWindowHint.

Auf welchem Betriebssystem?
Und was wird transparent? Dein ganzes Fenster? Transparent im Sinne von 50 % Deckkraft oder wird es unsichtbar?
yarikata
Beiträge: 22
Registriert: 17. Mai 2011 16:40

Beitrag von yarikata »

Exasperation hat geschrieben:Das ist nicht das Standardverhalten von Qt::FramelessWindowHint.

Auf welchem Betriebssystem?
Und was wird transparent? Dein ganzes Fenster? Transparent im Sinne von 50 % Deckkraft oder wird es unsichtbar?
Das Programm ist auf Win7 64 Bit programmiert wurden.
Das Widget wird transparent, d.h. ich kann komplett durch das Widget sehen durchsehen.

Nebenbei: Ich habe mein Programmfenster selbst gezeichnet, d.h. abgerundete Ecken und eine Deckkraft von 90%.

Code: Alles auswählen

durchsichtig=0.9;
    int rund (10);
    QRect widgetrect=this->rect();
    QPainter painter(this);
    painter.save();
    painter.setRenderHint(QPainter::Antialiasing);
    QPainterPath roundedrect;
    roundedrect.addRoundedRect(1,1,widgetrect.width()-2,widgetrect.height()-2,rund,rund);
    painter.setClipPath(roundedrect);
    painter.setOpacity(durchsichtig);
    painter.fillPath(roundedrect,QBrush(Qt::gray));

    QPen pen(Qt::black);
    int rahmen =10;
    pen.setWidth(rahmen);
    painter.setPen(pen);
    painter.setOpacity(durchsichtig);
    painter.drawRoundedRect(rahmen/2,rahmen/2,this->width ()-rahmen,this->height ()-rahmen,rund-2,rund-2);
    painter.restore();
    qmbMenu->setGeometry (rahmen,rahmen,this->width ()-rahmen*2,20);
    qtbToolBar->setGeometry (rahmen,rahmen+20,this->width ()-rahmen*2,20);
Aber das ist nicht das Problem. Das Problem liegt bzw. hängt mit den Code oben ab.

matane
yarikata
Beiträge: 22
Registriert: 17. Mai 2011 16:40

Beitrag von yarikata »

Hat keiner eine Idee?
Antworten