Dialoge minimieren, maximieren...
Dialoge minimieren, maximieren...
Hallo,
wie kann ich in einem Dialog (QWidget) die Minimieren, Maximieren Schaltfläche oder das X ausblenden?
Gruß
Marco812
wie kann ich in einem Dialog (QWidget) die Minimieren, Maximieren Schaltfläche oder das X ausblenden?
Gruß
Marco812
Re: Dialoge minimieren, maximieren...
Falls Du dich wunderst das keine Antwort kommt, das Thema hatten wir hier schon. Stichwort windowFlags.
Hallo,
ich habe es jetzt so versucht:
QWidget::setWFlags(Qt::WStyle_ContextHelp );
leider bekomme ich jetzt nicht mehr und auch nicht weniger angezeigt.
Wie müsste das aussehen, damit die Hilfe angezeigt wird?
Wie müsste das aussehen, wenn die Hilfe schon angezeigt wird und nicht angezeigt werden soll?
Gruß
Marco812
P.S.
Ich benutze QT 3.3
ich habe es jetzt so versucht:
QWidget::setWFlags(Qt::WStyle_ContextHelp );
leider bekomme ich jetzt nicht mehr und auch nicht weniger angezeigt.
Wie müsste das aussehen, damit die Hilfe angezeigt wird?
Wie müsste das aussehen, wenn die Hilfe schon angezeigt wird und nicht angezeigt werden soll?
Gruß
Marco812
P.S.
Ich benutze QT 3.3
Das hat bei mir noch nie geklappt, weshalb ich immer ein Exklusiv-Oder nehme. Da das nur funktioniert, wenn das Flag auch vorher da ist, muß man es halt vorher setzen.klogg hat geschrieben:setWindowFlags(windowFlags() & !Qt::WindowContextHelpButtonHint);HENNING
setWindowFlags( (windowFlags() | Qt::WindowContextHelpButtonHint) ^ Qt::WindowContextHelpButtonHint);
Danach ist es garantiert weg
Wenn ich mich recht entsinne ist die Kombination von Min-, Max- und Helpbutton mit Qt3 nicht möglich. Ich habe es jedenfalls nie hinbekommen. Also entweder Min oder Max, oder Min und Max, oder die Kontexthilfe.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Das ist mir aber neumacman hat geschrieben: Das hat bei mir noch nie geklappt, weshalb ich immer ein Exklusiv-Oder nehme. Da das nur funktioniert, wenn das Flag auch vorher da ist, muß man es halt vorher setzen.
(a | b) ^ b = a & !b
(xxxxxx0x | 00000010) ^ 00000010 = xxxxxx1x ^ 00000010 = xxxxxx0x = xxxxxx0x & 11111101 = xxxxxx0x & !(00000010)
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Ich hab ja nicht gesagt das es verkehrt ist
Unter Visual Studio meckert aber der Compiler wegen ähnlicher Konvertierungen bei
setWindowFlags(windowFlags() & !Qt::WindowContextHelpButtonHint);
setWindowFlags( (windowFlags() | Qt::WindowContextHelpButtonHint) ^ Qt::WindowContextHelpButtonHint);
gibt es hingegen keine Probleme.
setWindowFlags(windowFlags() & !Qt::WindowContextHelpButtonHint);
Miterror C2666: 'QFlags<Enum>::operator`&'': 3 Überladungen haben ähnliche Konvertierungen
with
[
Enum=Qt::WindowType
]
g:\Qt\4.1.0_static\src\corelib\global\qglobal.h(1538): kann 'QFlags<Enum> QFlags<Enum>::operator &(uint) const' sein
with
[
Enum=Qt::WindowType
]
g:\Qt\4.1.0_static\src\corelib\global\qglobal.h(1537): oder 'QFlags<Enum> QFlags<Enum>::operator &(int) const'
with
[
Enum=Qt::WindowType
]
oder 'eingebauter C++ Operator&(int, bool)'
bei Anpassung der Argumentliste '(Qt::WindowFlags, bool)'
setWindowFlags( (windowFlags() | Qt::WindowContextHelpButtonHint) ^ Qt::WindowContextHelpButtonHint);
gibt es hingegen keine Probleme.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
macman hat geschrieben:Ich hab ja nicht gesagt das es verkehrt istUnter Visual Studio meckert aber der Compiler wegen ähnlicher Konvertierungen bei
setWindowFlags(windowFlags() & !Qt::WindowContextHelpButtonHint);Miterror C2666: 'QFlags<Enum>::operator`&'': 3 Überladungen haben ähnliche Konvertierungen
with
[
Enum=Qt::WindowType
]
g:\Qt\4.1.0_static\src\corelib\global\qglobal.h(1538): kann 'QFlags<Enum> QFlags<Enum>::operator &(uint) const' sein
with
[
Enum=Qt::WindowType
]
g:\Qt\4.1.0_static\src\corelib\global\qglobal.h(1537): oder 'QFlags<Enum> QFlags<Enum>::operator &(int) const'
with
[
Enum=Qt::WindowType
]
oder 'eingebauter C++ Operator&(int, bool)'
bei Anpassung der Argumentliste '(Qt::WindowFlags, bool)'
setWindowFlags( (windowFlags() | Qt::WindowContextHelpButtonHint) ^ Qt::WindowContextHelpButtonHint);
gibt es hingegen keine Probleme.
Jetzt weiss ich was wir falsch machen! QFlags (siehe qglobal.h) sollte nämlich alles korrekt erledigen.
Und was machen wir? benutzen '!' anstatt '~' weil wir zu doof sind - hoffentlich sieht das keiner
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Laut Doku schon, aber auch bei mir geht es nicht.
Übrigens ist der Aufruf doch noch etwas falsch -> siehe Doku (http://doc.trolltech.com/3.3/qwidget.html#clearWFlags)
Mit setWFlags kann man nur setzen, mit clearWFlags löscht man... aber selbst dann geht es bei meinen kleinen Test nicht (wobei ich qt3/free verwende und dort evtl. ein Fehler sein könnte...)
Übrigens ist der Aufruf doch noch etwas falsch -> siehe Doku (http://doc.trolltech.com/3.3/qwidget.html#clearWFlags)
Mit setWFlags kann man nur setzen, mit clearWFlags löscht man... aber selbst dann geht es bei meinen kleinen Test nicht (wobei ich qt3/free verwende und dort evtl. ein Fehler sein könnte...)
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Ich hak das mal unter 'wieder was gelernt ab'. Und was hab ich gelernt? Das man nichts vergessen soll. Mal sehen wie lange es diesmal dauertChristian81 hat geschrieben:Jetzt weiss ich was wir falsch machen! QFlags (siehe qglobal.h) sollte nämlich alles korrekt erledigen.
Und was machen wir? benutzen '!' anstatt '~' weil wir zu doof sind - hoffentlich sieht das keiner
Ich möchte noch die Info beisteuern, dass unter Qt4 folgender Code funktioniert:
Benutzt man beide Zeilen, so werden die Knöpfe gar nicht mehr angezeigt.
Benutzt man nur ein, so wird der entsprechende Knopf grau.
HENNING
Code: Alles auswählen
widget->setWindowFlags(splitter->windowFlags() & ~Qt::WindowMaximizeButtonHint);
widget->setWindowFlags(splitter->windowFlags() & ~Qt::WindowMinimizeButtonHint);Benutzt man nur ein, so wird der entsprechende Knopf grau.
HENNING
Ich suche ebenfalls etwas in der Richtung.klogg hat geschrieben:Ich möchte noch die Info beisteuern, dass unter Qt4 folgender Code funktioniert:Benutzt man beide Zeilen, so werden die Knöpfe gar nicht mehr angezeigt.Code: Alles auswählen
widget->setWindowFlags(splitter->windowFlags() & ~Qt::WindowMaximizeButtonHint); widget->setWindowFlags(splitter->windowFlags() & ~Qt::WindowMinimizeButtonHint);
Benutzt man nur ein, so wird der entsprechende Knopf grau.
HENNING
Ich hätte ganz gern, dass die komplette Titelzeile verschwindet und man das Fenster bewegen kann, indem man irgendwo in die freie Fläche klickt.
Wie z.B. beim Miranda-IM-Fenster, u kno?
Der Beispielcode aus dem zitierten Post von "Henning" funktioniert bei mir zumindest schon mal nicht. Zumal nicht ersichtlich ist, was bei ihm "splitter" ist - oder übersehe ich da was?
Ich habe bei mir eine Klasse "RadioView", die u.a. ein QWidget als Member hat. Bei diesem Widget hätte ich nun gern die oben genannten Einstellungen.
Wäre dankbar für Ansätze.
Grüße & Dank
meph