Solved Qt Stylesheets
-
@Galilio
ist ein Layout auf dem Dialog gesetzt? Wenn ja, dann:void MyApplication::showAboutApplication() { AboutDialog *dialog = new AboutDiaolog(this); dialog->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint); dialog->setAttribute(Qt::WA_TranslucentBackground); dialog->resize( dialog->sizeHint() ); // <<<<<<<<<<<< dialog->exec(); delete dialog; }
-
Hallo,
es passiert nichts.
-
Mit passiert nichts meine ich: Dialog wird nicht mal gezeigt
-
-
- Ohne das:
dialog->resize(dialog->sizeHint());
Dialog ist abgeschnitten.
- Mit:
dialog->resize(dialog->sizeHint());
wird nichts gezeigt
-
@Galilio
dann verwendest du kein Layout indialog
?Mein Vorschlag funktioniert nur wenn du ein Layout verwendest (oder
sizeHint()
überladen hast). Ohne Layout musst du den Dialog selbst resizen bis es passt. -
doch ich verwende einen Layout und zwar den Grid Layout.
-
@Galilio
was gibt folgendes zurück?qDebug() << dialog->layout();
-
QGridLayout(0x142624d8, name = "gridLayout_2")
-
@Galilio
hmm...strange.
Dann dürfte irgendein widget in der Hierachie nichtsizeHint()
implementiert haben, oder eine maximum size gesetzt sein? ... kA
Bleibt wohl nur das "händische resizen". -
@raven-worx
jetzt wenn ich das anwende:AboutDialog *dialog = new AboutDialog(this); dialog->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint); dialog->setAttribute(Qt::WA_TranslucentBackground); dialog->resize(dialog->sizeHint());
oder
AboutDialog *dialog = new AboutDialog(this); dialog->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint); dialog->setAttribute(Qt::WA_TranslucentBackground);
--> Dialog wird gar nicht gezeigt
Ich setze auch nirgend eine Minimum bzw. Maximum -
@Galilio said in Qt Stylesheets:
dialog->resize(dialog->sizeHint());
dialog->resize( QSize(x,y) ); //<< passende size
-
@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