Seite 1 von 1

QDialog anpassen[gelöst]

Verfasst: 23. Juni 2008 13:58
von Qt-nator
Hi,

folgendes:

Ich habe eine Klasse die ist von QDialog abgeleitet. Und ich möchte jetzt sagen das man das Fenster nicht vergrößen noch verkleinern kann. (Also groß und klein ziehn) und das alle Buttons weg sind.

Das X, Help, min, max.

Bei den Buttens hab ich 3 schon weg. Aber mit dem verändern der größe bin ich ratlos.

Da gibts doch bestimmt etwas einfaches was man setzen muss und dann gehts.

Danke im Vorraus

Qt-nator

Re: QDialog anpassen

Verfasst: 23. Juni 2008 14:05
von kitov
man Qt::WindowFlags

Verfasst: 23. Juni 2008 14:06
von Qt-nator
Ja klar,

Code: Alles auswählen


  setWindowFlags(windowFlags() ^ Qt::WindowTitleHint);

  setWindowFlags(windowFlags() ^ Qt::WindowContextHelpButtonHint);

hab ich ja nur den rest weis ich nicht

Verfasst: 23. Juni 2008 15:40
von Sephral
Notfalls einfach minimumSize und maximumSize auf den selben Wert setzen.
Du kannst auch mal die WindowFlags "Qt::Tool" und "Qt::SplashScreen" ausprobieren.

EDIT: Man könnte auch das resizeEvent überschreiben und das Fenster immer wieder auf die "QResizeEvent::oldSize()" zurücksetzen :lol:

Verfasst: 23. Juni 2008 15:49
von Qt-nator
"Qt::Tool" und "Qt::SplashScreen" funktionieren nicht.

Bekommen ich bei beiden ein kleines fenster Ohne Inhalt.

Weis nicht ob das Sinn machen würd es immer wieder zurückzusetzen, muss doch auch irgendwas geben wo ich sagen kann man darf es garnicht erst vergrössern, verkleinern.

Des weiteren versteh ich nicht warum einige Butten mit dem Hide vorhanden sind andere aber wieder nicht.

Was mir noch fehlt ist der Close button und das icon.

Verfasst: 23. Juni 2008 15:50
von macman
Ich mache sowas mit layout()->setSizeConstraint(QLayout::SetFixedSize);
Hat den Vorteil das der Mauscursor nicht so tut, als wenn man was ändern könnte, wie es bei minimumSize=maximumSize der Fall wäre.

PS: Hätte man auch per Suche finden können, ist nämlich fast schon ne FAQ :-)

Verfasst: 23. Juni 2008 16:20
von Qt-nator
Danke das Perfekt.

Aber nach was hätte ich den suchen sollen? Naja geht jedenfalls, jetzt hab ich nur noch das problem wie ich icon und X-Button weg bekomme.

Verfasst: 23. Juni 2008 16:30
von Christian81
Qt bringt ein schönes Beispiel namens 'windowflags' mit - da kannst Du es ausprobieren welche Flags gesetzt sein müssen. Es kommt auch ein wenig auf den Window-Manager an (denke ich) - heißt nicht umsonst 'Hint'. Unter KDE4 muss ich frameless window benutzen oder tooltip

Verfasst: 23. Juni 2008 16:45
von Qt-nator

Code: Alles auswählen

   setWindowFlags(windowFlags() ^ Qt::FramelessWindowHint);
Macht alles das was ich brache danke für die Hilfe.

Verfasst: 23. Juni 2008 17:07
von Christian81
Aber das mit dem XOr würde ich mir nochmal überlegen - das funktioniert nämlich nicht immer...

Verfasst: 26. Juni 2008 13:53
von moviemax
da layout()->setSizeConstraint(QLayout::SetFixedSize);
habe ich auch schon ewig gesucht.
Klar wenn man es weiß ist es immer ganz einfach und logisch.

vielleicht weiß noch jemand einen trick wie man so einem dialog
oder sonstiges QWidget sagen kann, dass es _nicht_ aus dem
QMainWindow bereich raus soll. -- ne ein dockwidget darfs auch nicht sein.
moviemax