1

我正在尝试将文本项添加到QCustomPlot小部件上。QCPItemText构造函数将指向小部件的指针QCustomPlot作为参数。

QCPItemText::QCPItemText ( QCustomPlot * parentPlot)

创建QCPItemText对象后,可以使用成员函数将其添加到小部件中QCustomPlot::addItem()。但我的问题是程序无法编译。它说没有调用成员函数QCustomPlot::addItem()。但是这个例子似乎是这样做的。我很困惑。

这是我的代码的一部分;

    //hash out current widget
    QCustomPlot *currentWidget = GraphWindow::dynamicWidgetHash.value(slot);

   //Setup font
    QFont plotFont;
    plotFont.setStyleHint(QFont::Helvetica);
    plotFont.setBold(true);
    plotFont.setWeight(8);
    plotFont.setPointSize(16);

    GraphWindow::setupBackground(slot);        
    QCPItemText itemText(currentWidget);
    QString dataText = "No " + xLabel + " data found. \nPossibly the firm may not possess " + xLabel;
    itemText.setText(dataText);
    itemText.setPositionAlignment(Qt::AlignTop|Qt::AlignCenter);
    itemText.position->setType(QCPItemPosition::ptAxisRectRatio);
    itemText.position->setCoords(2,2);
    itemText.setFont(plotFont);
    itemText.setPen(QPen(Qt::white));

WheredynamicWidgetHash是一个QHash对象,它QCustomPlot *为每个给定的 存储一个key

当我尝试使用此行时发生错误

currentWidget->addIem(itemText);

4

1 回答 1

1

changelog.txt在安装路径中存在的文件的第 79 行QcustomPlot,您会看到它显示为:

已移除QCustomPlot::addItem,不再需要,因为项目现在会自动在其构造函数中注册。

所以你不需要currentWidget->addIem(itemText)

于 2018-01-26T07:52:40.077 回答