-2

我有一个屏幕类

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


}
4

1 回答 1

1

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

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

有关更多信息,请参见此处(对于应实现的进一步功能,还有其他可选建议):http: //qt-project.org/doc/qt-4.8/qlayout.html

于 2014-12-16T17:27:16.343 回答