Mein GUI-Projekt in Qt
hat viele "Konfigurationsseiten" -Klassen, von denen alle direkt erben QWidget
.
Kürzlich wurde mir klar, dass alle diese Klassen zwei gemeinsame Slots ( loadSettings()
und saveSettings()
) haben.
Diesbezüglich habe ich zwei Fragen:
- Ist es sinnvoll, eine abstrakte Basisklasse (nennen wir es
BaseConfigurationPage
) mit diesen beiden Slots als virtuelle reine Methoden zu schreiben ? (Jede mögliche Konfigurationsseite hat immer diese beiden Methoden, daher würde ich "Ja" sagen.) - Bevor ich die umfangreichen Änderungen an meinem Code vornehme (falls erforderlich): Unterstützt Qt virtuelle reine Slots? Gibt es etwas, das ich beachten sollte?
Hier ist ein Codebeispiel, das alles beschreibt:
class BaseConfigurationPage : public QWidget
{
// Some constructor and other methods, irrelevant here.
public slots:
virtual void loadSettings() = 0;
virtual void saveSettings() = 0;
};
class GeneralConfigurationPage : public BaseConfigurationPage
{
// Some constructor and other methods, irrelevant here.
public slots:
void loadSettings();
void saveSettings();
};
quelle
obj-ptr, member-func-ptr, obj-ptr, member-func-ptr
Version von verwendenconnect
, keiner Ihrer Slots als solcher deklariert werden.Nur Slots in der BaseConfigurationPage
quelle