我試圖編譯一個程序(在這裏找到:http://sourceforge.net/projects/lisem/)按照作者說的說明。然而,在Qt Creator中編譯時,它給人的錯誤:從'QWidget *'到'QwtPlotCanvas *'的無效轉換[-fpermissive]
invalid conversion from 'QWidget*' to 'QwtPlotCanvas*' [-fpermissive]
186 picker = new MyPicker(MPlot->canvas());
鏈接到它的頭文件(LisUImapplot.h)可以在同一文件夾中找到作爲cpp文件。
class MyPicker: public QwtPlotPicker
{
public:
MyPicker(QwtPlotCanvas *canvas):
QwtPlotPicker(canvas)
{
setTrackerMode(AlwaysOn);
}
virtual QwtText trackerTextF(const QPointF &pos) const
{
QColor bg(Qt::white);
bg.setAlpha(100);
QwtPlotItemList list = plot()->itemList(QwtPlotItem::Rtti_PlotSpectrogram);
QwtPlotSpectrogram * sp = static_cast<QwtPlotSpectrogram *> (list.at(1));
double z = sp->data()->value(pos.x(), pos.y());
QString txt = "";
if (z > -1e10)
txt.sprintf("%.3f", z);
QwtText text = QwtText(txt);
text.setColor(Qt::black);
text.setBackgroundBrush(QBrush(bg));
return text;
}
};
我希望你能幫助我解決這個問題。謝謝!
我使用Qt 5.1.1 MinGW的32位和QWT 6.1.0
什麼是返回類型'MPlot->畫布()'的?什麼類型有'picker'指針? –