Il mio progetto GUI in Qt
ha molte classi di "pagine di configurazione" da cui ereditano tutte direttamente QWidget
.
Recentemente, mi sono reso conto che tutte queste classi condividono 2 slot comuni ( loadSettings()
e saveSettings()
).
A questo proposito, ho due domande:
- Ha senso scrivere una classe astratta di base intermedia (chiamiamola
BaseConfigurationPage
) con questi due slot come metodi puri virtuali? (Ogni possibile pagina di configurazione avrà sempre questi due metodi, quindi direi "sì") - Prima di apportare modifiche sostanziali al mio codice (se necessario): Qt supporta gli slot puri virtuali? C'è qualcosa di cui dovrei essere a conoscenza?
Ecco un esempio di codice che descrive tutto:
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();
};