Solved Qt Stylesheets
-
@raven-worx
Dialog wird trotzdem nicht gezeigt -
@Galilio
also sobald dein Dialog resized wird, wird er nicht mehr gezeigt?!
Dann ist irgendwas mit deiner Implementierung nicht in Ordnung. -
@raven-worx
Mit resize oder ohne
Dialog wird nicht gezeigt.
Wenn ich das ganze auskommentiere :AboutDialog *dialog = new AboutDialog(this); //dialog->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint); //dialog->setAttribute(Qt::WA_TranslucentBackground); //dialog->resize(QSize(250,260)); qDebug() << dialog->layout(); dialog->exec(); delete dialog;
--> Dialog wird gezeigt
-
@raven-worx
Warum sollte in der Implementierung was falsch sein.
Ich tue nicht anders als das Objeckt zu erzeugen mehr nicht. -
@Galilio said in Qt Stylesheets:
Mit resize oder ohne
Dialog wird nicht gezeigt.
Wenn ich das ganze auskommentiere :liegt ws nur an der Zeile mit
Qt::WA_TranslucentBackground
?? Kannst du das mal ausprobieren.Läuft irgendeine OpenGL Anwendung nebenbei?
-
@raven-worx said in Qt Stylesheets:
liegt ws nur an der Zeile mit Qt::WA_TranslucentBackground??
@ Was meinst du bitte damit?
Läuft irgendeine OpenGL Anwendung nebenbei?
@ Nein -
@Galilio said in Qt Stylesheets:
Was meinst du bitte damit?
dass es ws nur an deiser einen Zeile liegt.
-
@raven-worx
wenn ich so schreibe:AboutDialog *dialog = new AboutDialog(this); //dialog->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint); dialog->setAttribute(Qt::WA_TranslucentBackground); //dialog->resize(QSize(250,260)); qDebug() << dialog->layout(); dialog->exec(); delete dialog;
--> Dialog wird gezeigt
und wenn ich so schreibe:AboutDialog *dialog = new AboutDialog(this); dialog->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint); //dialog->setAttribute(Qt::WA_TranslucentBackground); //dialog->resize(QSize(250,260)); qDebug() << dialog->layout(); dialog->exec(); delete dialog;
--> Dialog wird nicht gezeigt
-
@Galilio
ok, dann versuch mal das:dialog->setWindowFlags( Qt::Dialog | Qt::FramelessWindowHint | Qt::CustomizeWindowHint );
-
@raven-worx said in Qt Stylesheets:
dialog->setWindowFlags( Qt::Dialog | Qt::FramelessWindowHint | Qt::CustomizeWindowHint );
Hi,
1000000000 dank
So funktioniert wie es sein muss:dialog->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint | Qt::CustomizeWindowHint); dialog->setAttribute(Qt::WA_TranslucentBackground);
Danke noch mal :-)
-
Sorry
ich habe es noch eine Frage:
Es geht eigentlich um das gleiche Thematik:
Die Application und der Dialog sind gleich designed.
Damit die GUI mittels Maus bewegt werden können müssen folgende Fkt überschrieben werden:
void mousePressEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);Meine Frage: da es sich dieses Fkt bei der App "class" so wie bei der Dialog "class" gleich implementiert sind, gibt es eine möglichkeit diese doppelt code zu verhindern in dem es nur einmal implementiert werden?
-
@Galilio said in Qt Stylesheets:
Meine Frage: da es sich dieses Fkt bei der App "class" so wie bei der Dialog "class" gleich implementiert sind, gibt es eine möglichkeit diese doppelt code zu verhindern in dem es nur einmal implementiert werden?
Wenn es möglich ist, dass beide eine gemeinsame Basis-Klasse haben, dann ja.
Ansonsten könntest du preprocessor macros verwenden. -
@raven-worx said in Qt Stylesheets:
preprocessor macros
und wie kann ich den preprocessor in diesem Zusammenhang anwenden ?
:-( -
#define MOUSE_PRESS_CODE if( event->button() == Qt::LeftButton )\ {\ hotSpot = this->mapFromGlobal(event->globalPos());\ event->accept();\ return;\ } ... void MyWidget::mousePressEvent( QMouseEvent* event ) { MOUSE_PRESS_CODE BaseClass::mousePressEvent( event ); }
für mehr infos => google