我正在尝试按照作者所说的编写程序(在此处找到http://sourceforge.net/projects/lisem/)。但是,在Qt Creator中编译时,会出现错误:
class QWidget has no member named setFrameStyle
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);
我希望你能帮助我。谢谢!
BTW,我使用的是Qt 5.1.1 MinGW 32位和Qwt 6.1.0
答案 0 :(得分:6)
由于QWidget
没有这样的成员,所以非常期待这一点。这是QFrame
成员方法。
void QFrame::setFrameStyle(int style)
注意,canvas getter将返回以下类型,而不一定是QFrame
:
QWidget * QwtPlot::canvas();
const QWidget * QwtPlot::canvas() const;
如果返回的值实际上是QFrame
,则应使用dynamic / qobject_cast进行检查。
答案 1 :(得分:3)
这里有一个QWidget的原因是,有一个选项可以使用从QGLWidget派生的画布。但只要您不从应用程序中分配它,您的dynamic_cast(或qobject_cast)将始终成功。