Il mio progetto GUI in Qtha 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();
};