[gelöst] QDialog mit einfacher Linie als Frame

Alles rund um die Programmierung mit Qt
Antworten
suamikim
Beiträge: 59
Registriert: 1. November 2009 15:58

[gelöst] QDialog mit einfacher Linie als Frame

Beitrag 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?
Zuletzt geändert von suamikim am 15. April 2010 17:41, insgesamt 1-mal geändert.
Exasperation
Beiträge: 186
Registriert: 11. März 2009 18:00
Wohnort: VS

Beitrag 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?
suamikim
Beiträge: 59
Registriert: 1. November 2009 15:58

Beitrag 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
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Muss es denn unbedingt QDialog sein? Mit QFrame kannst du nämlich den Rahmen genau nach deinem Gusto einstellen.
suamikim
Beiträge: 59
Registriert: 1. November 2009 15:58

Beitrag 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!
suamikim
Beiträge: 59
Registriert: 1. November 2009 15:58

Beitrag 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)...
Antworten