Мій проект графічного інтерфейсу Qt
має багато класів "сторінок конфігурації", які всі успадковуються безпосередньо від QWidget
.
Нещодавно я зрозумів, що всі ці класи мають 2 спільних слоти ( loadSettings()
і saveSettings()
).
Щодо цього, у мене є два запитання:
- Чи є сенс писати проміжний базовий абстрактний клас (давайте назвати його
BaseConfigurationPage
) з цими двома слотами як віртуальні чисті методи? (Кожна можлива сторінка конфігурації завжди матиме ці два методи, тому я б сказав "так") - Перш ніж зробити серйозні зміни в коді (якщо доведеться): чи підтримує Qt віртуальні чисті слоти? Чи є щось, про що я повинен знати?
Ось приклад коду, що описує все:
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();
};