-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 に答える