【发布时间】:2011-03-01 04:55:09
【问题描述】:
我在Qt 中的GUI 项目有很多“配置页面”类,它们都直接继承自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();
};
【问题讨论】:
标签: c++ qt inheritance signals-slots