PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Qt] "WhatsThis?"-Button aus einem Wizard entfernen


eXistence
2005-10-20, 12:08:06
Hi,
ich hab ne Klasse für einen Wizard (abgeleitet von QWizard, welche ihrerseits wieder abgeleitet von QDialog ist) und das funzt auch alles ganz gut soweit.
Das Problem:
Die QDialog-Klasse (und damit auch mein Wizard) hat oben rechts son Fragezeichen-Button ("WhatsThis?"). Wenn man damit auf ein Element in der Gui klickt kann man darüber eine BEschreibung oder Tip bekommen.
Das Problem ist, ich will dieses feature garnicht. Wie entferne/verstecke ich diesen Button also?
Ich hatte gehofft, dass QDialog ne Methode hat, die mir nen Zeiger auf den Button gibt, aber so ist es laut Doku nicht ;(
Ich vermute es geht irgendwie über flags, aber da komme ich nicht weiter...

Kennt sich jemand mit Qt (btw: version 3.0.1) aus und kann mir weiterhelfen?

Nagilum
2005-10-20, 13:29:31
Ich hab eeeeeewig nichts mehr mit Qt programmiert, aber ich bezweifel, dass der Knopf in der Titelleiste ein simpler PushButton ist. Du wirst da eher über den Konstruktor gehen müssen.

*Wühl*

Hier ein Auszug aus dem Quellcode von QDialog (Qt4):


/*!
Constructs a dialog with parent \a parent.

A dialog is always a top-level widget, but if it has a parent, its
default location is centered on top of the parent. It will also
share the parent's taskbar entry.

The widget flags \a f are passed on to the QWidget constructor.
If, for example, you don't want a What's This button in the title bar
of the dialog, pass Qt::WindowTitleHint | Qt::WindowSystemMenuHint in \a f.

\sa QWidget::setWindowFlags()
*/

QDialog::QDialog(QWidget *parent, Qt::WFlags f)
: QWidget(*new QDialogPrivate, parent,
f | QFlag((f & Qt::WindowType_Mask) == 0 ? Qt::Dialog : 0))
{
}



Dem Konstruktor von QWizard kannst du praktischerweise diese Flags direkt übergeben; sie werden dann an den Konstruktor von QDialog bzw. QWidget weitergereicht.


(Alle Angaben ohne Gewähr)

eXistence
2005-10-20, 15:48:57
Jo, etwas in der Art dachte ich mir auch schon, nur leider komme ich da nicht weiter ;(
Qt 3.0.1 verwendet noch ein etwas anderes Flag-System als Qt4, dein Quote kann ich also nicht übernehmen...
Leider finde ich in der Doku von Qt3 keinen Hinweis darauf, welches Flag für den Button verantwortlich ist... :(