В моем проекте GUI в 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();
};