为继承QLayout的类创建对象

时间:2014-12-16 05:00:30

标签: qt inheritance abstract-class qlayout

我有一个屏幕类

   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)
{


}

1 个答案:

答案 0 :(得分:1)

QLayout是纯粹的抽象,意味着它拥有没有定义的虚拟成员。要对其进行子类化,您需要为类中的所有此类方法提供定义。具体来说,Qt Docs说明了

  

要制作自己的布局管理器,请实现addItem()函数,   sizeHint()setGeometry()itemAt()takeAt()

有关详细信息,请参阅此处(还有其他可选建议可供实施的其他功能):http://qt-project.org/doc/qt-4.8/qlayout.html