Mon projet GUI dans Qt
a beaucoup de classes de "pages de configuration" qui héritent toutes directement de QWidget
.
Récemment, j'ai réalisé que toutes ces classes partagent 2 slots communs ( loadSettings()
et saveSettings()
).
À ce sujet, j'ai deux questions:
- Est-il judicieux d'écrire une classe abstraite de base intermédiaire (appelons-la
BaseConfigurationPage
) avec ces deux slots comme méthodes pures virtuelles? (Chaque page de configuration possible aura toujours ces deux méthodes, donc je dirais "oui") - Avant de faire le gros changement dans mon code (si je dois le faire): Qt prend-il en charge les slots virtuels purs? Y a-t-il quelque chose dont je devrais être conscient?
Voici un exemple de code décrivant tout:
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();
};
la source
obj-ptr, member-func-ptr, obj-ptr, member-func-ptr
version deconnect
, aucun de vos emplacements n'a besoin d'être déclaré comme tel.Uniquement les emplacements dans BaseConfigurationPage
la source