5

著者の指示に従って、プログラムをコンパイルしようとしています (ここにあります: http://sourceforge.net/projects/lisem/ )。ただし、Qt Creator でコンパイルすると、次のエラーが発生します。

class QWidget has no member named setFrameStyle

LisUIplot.cppのこれらのコード行について

47 HPlot = new QwtPlot(title, this);
48 layout_Plot->insertWidget(0, HPlot, 1);
49 HPlot->canvas()->setFrameStyle(QFrame::StyledPanel);

142 smallPlot = new QwtPlot(title, this);
143 smallPlot->setMinimumSize(300,300);
144 smallPlot->resize(500,500);
145 verticalLayout_6->insertWidget(0, smallPlot, 1);
146 smallPlot->canvas()->setFrameStyle(QFrame::StyledPanel);

これについて私を助けてくれることを願っています。ありがとうございました!

ところで、私はQt 5.1.1 MinGW 32ビットとQwt 6.1.0を使用しています

4

2 に答える 2

6

QWidgetそのようなメンバーがいないので、これはかなり予想されます。それがQFrameメンバーメソッドです。

void QFrame::setFrameStyle(int style)

キャンバス ゲッターは次の型を返すことに注意してくださいQFrame

QWidget * QwtPlot::canvas();
const QWidget * QwtPlot::canvas() const;

戻り値が実際に である場合は、dynamic/qobject_cast で確認する必要がありますQFrame

于 2013-10-04T05:13:24.910 に答える
3

ここで QWidget を使用する理由は、QGLWidget から派生したキャンバスを使用するオプションがあるためです。ただし、アプリケーションから割り当てない限り、 dynamic_cast (または qobject_cast ) は常に成功します。

于 2013-10-04T14:42:29.597 に答える