[gelöst] Hintergrundfarbe von Dialog einstellen

Alles rund um die Programmierung mit Qt
Antworten
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

[gelöst] Hintergrundfarbe von Dialog einstellen

Beitrag von pospiech »

Ich würde gerne wissen wie ich einen Dialog zum einen Randlos machen und zum anderen die Hintergrundfarbe des Dialogs auf schwarz stellen kann.

In der Dokumentation habe ich für die Hintergrund Farbe keine Funktion finden können.

(Testen kann ich nicht weil der automatisch generierte Code nicht kompiliert, siehe http://qtforum.de/forum/viewtopic.php?t=5017)

Matthias
Zuletzt geändert von pospiech am 30. September 2007 17:35, insgesamt 1-mal geändert.
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Hm, also wenn man die Doku ganz lieb fragt, man kann auch noch rituale hinzufügen (wie auf "Index" oder "Suche" klicken), dann spuckt sie nach etwas intensiver nutzung (d.h zb die QWidget Section durchlesen) aus, dass man mit QPalette alle beliebigen Fensterteile umfärben kann. Für das randlose Fenster guck mal unter setWindowFlags().
Viel Glück!

PS: Bist du der Latex-Guru in mrunix.de???
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag von pospiech »

KernelPanic hat geschrieben:Hm, also wenn man die Doku ganz lieb fragt, man kann auch noch rituale hinzufügen (wie auf "Index" oder "Suche" klicken), dann spuckt sie nach etwas intensiver nutzung (d.h zb die QWidget Section durchlesen) aus, dass man mit QPalette alle beliebigen Fensterteile umfärben kann. Für das randlose Fenster guck mal unter setWindowFlags().
Viel Glück!
Klingt etwas kompliziert. Könnte man eigentlich auch ein Qpainter innerhalb des Dialogs nutzen und dann einen schwarzen Rahmen mit den Dialoggröße zeichen? So hatte ich das in MFC gelöst.
KernelPanic hat geschrieben:PS: Bist du der Latex-Guru in mrunix.de???
Ja, das bin ich...

Matthias Pospiech
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Warum was neu implementieren, was Qt kann?

Code: Alles auswählen

QPalette pal = this->palette();
pal->setColor(QPalette::Window, Qt::black);
this->setPalette(pal);
Fertig.

Code: Alles auswählen

SetWindowFlag(Qt::WA_FramelessWindowHint);
Das war alles.

Carpe Diem.
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

klappts jetzt?
wenn ja mach bitte ein [gelöst] vor deinen Titel. dann guckt man nemmer dadrauf, es sei denn man hat ein ähnliches problem.
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag von pospiech »

KernelPanic hat geschrieben:klappts jetzt?
wenn ja mach bitte ein [gelöst] vor deinen Titel. dann guckt man nemmer dadrauf, es sei denn man hat ein ähnliches problem.
Schon klar, ich kann aber nur Abends an meinen eigenen Programmen arbeiten. Zum Testen brauche ich also noch etwas Zeit...

Matthias
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag von pospiech »

Ich habe jetzt in den Konstruktor der Klasse folgenden Code plaziert:

Code: Alles auswählen

	QPalette pal = this->palette();
	pal.setColor(QPalette::Window, Qt::black);
	this->setPalette(pal); 	
	SetWindowFlag(Qt::WA_FramelessWindowHint); 
das führt aber nur zu den Fehlermeldungen
1>.\DialogPhaseShaperOutput.cpp(10) : error C2039: 'WA_FramelessWindowHint': Ist kein Element von 'Qt'
1>.\DialogPhaseShaperOutput.cpp(10) : error C2065: 'WA_FramelessWindowHint': nichtdeklarierter Bezeichner
1>.\DialogPhaseShaperOutput.cpp(10) : error C3861: "SetWindowFlag": Bezeichner wurde nicht gefunden.
dazu zwei Fragen:
- kann man in Konstruktor überhaupt das Fenster bearbeiten? In MFC geht das nicht, weil das Fenster ja noch nicht erstellt ist, sondern erst danach.
- muss ich dafür noch Includedateien Laden?

Matthias
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

nein, du musst keine includes laden und ich bin nicht unfehlbar ich glaube da habe ich einen Fehler gemacht.

Code: Alles auswählen

setWindowFlag(Qt::FramelessWindowHint);
sry
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag von pospiech »

KernelPanic hat geschrieben:nein, du musst keine includes laden und ich bin nicht unfehlbar ich glaube da habe ich einen Fehler gemacht.

Code: Alles auswählen

setWindowFlag(Qt::FramelessWindowHint);
es heißt sogar korrekter weise

Code: Alles auswählen

setWindowFlags(Qt::FramelessWindowHint);
aber dafür stürzt jetzt das Projekt beim starten einfach nur ab:
http://www.qtforum.de/forum/viewtopic.php?p=25883#25883

Matthias
Antworten