我有一些我定制的代码,目的略有不同。在这种情况下,使用新的Qt表单文件实现了轻微的UI更改。 UI项目都具有相同的名称,但已重新排列。这是给定的,我无法改变它。
使用UI的类需要使用生成的Qt表单类,它具有与原始文件不同的类型。让我们说原始的UI表单类称为CarDoorForm,新的一个称为LargeCarDoorForm。 让我们说使用表单UI的类最初是Car类。 Car类有一个CarDoorForm类型的私有成员变量_DoorForm。我想修改Car类,以便它使用LargeCarDoorForm而不是CarDoorForm。 那样就好;我最终得到了这个:
class Car {
public:
...
QString doorColour()
{
_DoorForm.paintColourTextEdit->text();
}
private:
CarDoorForm _DoorForm;
};
};
class LargeCar : public Car()
{
....
private:
LargeCarDoorForm _DoorForm
};
我可以获得任一对象的doorColor而无需在LargeCar中重新实现很多代码。 现在,在我的代码中,我有几个已经从Car继承的类,在我的自定义代码中,我希望它们在新的LargeCar类中使用ui。 例如,使用原始Car类的类:
class AutonomousCar: public Car
{
..
public:
void showDoorColour()
{
std::cout << doorColour();
}
.. tons of other functions ..
};
AutonomousCar类很大,功能很多。如果我想要一个具有AutonomousCar的所有功能但是LargeCar的UI的新类,有没有办法使用多重继承(或其他一些设计功能)来实现这一目标?