Seite 1 von 1

[gelöst] QDialog mit einfacher Linie als Frame

Verfasst: 15. April 2010 12:15
von suamikim
Hallo zusammen,

ich bin gerade dabei eine alte C#-Anwendung in Qt neu zu implementieren. Die Anwendung hat einen Splash-Screen, der in der C#-Version so aussieht:
Bild

In meiner neuen Qt-Version sieht das ganze Momentan so aus:
Bild

Die Frage ist nun, wie ich den Rahmen in der Qt-Version so aussehen lasse, wie in der C#-Version (einfach nur eine schwarze Linie mit breite von 1 Pixel). Ich denke man sieht ganz gut, was ich damit meine...

Eine 2. Frage: Gibt es eine einfache Methode, der Progress-Bar ein Benutzerdefiniertes Bild zu hinterlegen, welches anstatt der blauen Balken angezeigt wird oder muss ich dafür die Paint-Methode der Progress-Bar überschreiben und das Zeichnen selbst übernehmen?

Verfasst: 15. April 2010 12:23
von Exasperation
Wenn das wirklich ein QSplashScreen wäre dann hätte er nicht so einen Rand... Hast du die Demos und Examples auf deinem Rechner drauf? Schau mal dort unter Widgets->Window Flags.. dort sieht man deutlich dass ein QSplashScreen nicht einen solchen Rand hat, wie man ihn auf deinem Screenshot sieht...

Alternativ kannst du deinen Splashscreen auch als normales Widget erstellen und dann mittels

Code: Alles auswählen

setWindowFlags( Qt::FramelessWindowHint )
genauso rahmenlos machen. Dann allerdings besitzt dieses Fenster einen Button in der Taskbar, was bei QSplashScreen nicht der Fall ist...

Welchen Style benutzt du?

Verfasst: 15. April 2010 15:06
von suamikim
Sorry, hab vergessen zu erwähnen, dass ich von QDialog und nicht QSplashScreen ableite.
Sehe in QSpashScreen keine wirklich Vorteile und will nicht, dass sich das Fenster bei Mausklick automatisch schließt.

Die Window-Flags helfen schon weiter, allerdings hab ich nun (wie natürlich zu erwarten war) gar keinen Rand, ich hätte aber gerne den 1 Pixel breiten schwarzen Rand.

Schätze mal eine vordefinierte Einstellung dafür gibt es nicht, oder?

Werd dann wohl einfach einen Rahmen rund um mein Hintergrundbild zeichnen.

Danke

Verfasst: 15. April 2010 15:10
von franzf
Muss es denn unbedingt QDialog sein? Mit QFrame kannst du nämlich den Rahmen genau nach deinem Gusto einstellen.

Verfasst: 15. April 2010 15:29
von suamikim
Die Lösung wie oben genannt funktioniert schon ganz gut. So kann ich den Rahmen auch komplett selbst bestimmen (weil ich das Hintergrundbild samt Rahmen ja selbst mittels Gimp zeichne).
So sollte auch sichergestellt sein, dass der Rahmen auf allen Betriebssystemen gleich aussieht (muss ich erst testen)...

Danke trotzdem für den Vorschlag!

Verfasst: 15. April 2010 17:41
von suamikim
Falls es jemand interessiert, hier das Ergebnis:

Bild

Sieht doch gleich besser aus ;)

Bin immer wieder erstaunt wie simpel man gewisse Dinge in Qt lösen kann (zB. das selbst zeichnen der ProgressBar)...