我有一个屏幕类
class Screen : public QLayout
{
public:
Screen();
~Screen();
void paintEvent(QPaintEvent *e);
};
当我创建对象时,我遇到了一个无法为纯抽象类创建对象的错误。由于QLayoput是纯抽象的,我怎样才能为继承QLayout的类创建一个对象?
定义:
Screen::Screen( )
{
}
Screen::~Screen()
{
delete this ;
//Screen(new QSize (100,100));
}
void Screen::paintEvent(QPaintEvent *e)
{
}
答案 0 :(得分:1)
QLayout是纯粹的抽象,意味着它拥有没有定义的虚拟成员。要对其进行子类化,您需要为类中的所有此类方法提供定义。具体来说,Qt Docs说明了
要制作自己的布局管理器,请实现
addItem()
函数,sizeHint()
,setGeometry()
,itemAt()
和takeAt()
。
有关详细信息,请参阅此处(还有其他可选建议可供实施的其他功能):http://qt-project.org/doc/qt-4.8/qlayout.html