我需要創建自己的小部件類并將其放置在圖形表單 (.ui) 上。為了實作這一點,我借用了 qt 交付這個類附帶的例子:
#ifndef CHARTVIEW_H
#define CHARTVIEW_H
#include <QChartView>
#include <QtWidgets/QRubberBand>
QT_CHARTS_USE_NAMESPACE
//![1]
class ChartView : public QChartView
//![1]
{
public:
ChartView(QChart *chart, QWidget *parent = 0);
//![2]
protected:
bool viewportEvent(QEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void keyPressEvent(QKeyEvent *event);
//![2]
private:
bool m_isTouching;
};
#endif
之后我檢查了
在我的小部件的 ui 類源中生成了:
graphicsView_5 = new QChartView(page_5);
graphicsView_5->setObjectName(QString::fromUtf8("graphicsView_5"));
graphicsView_5->setGeometry(QRect(9, 9, 256, 192));
pushButton_5 = new QPushButton(page_5);
pushButton_5->setObjectName(QString::fromUtf8("pushButton_5"));
pushButton_5->setGeometry(QRect(903, 264, 80, 21));
graphicsView_6 = new ChartView(page_5);
graphicsView_6->setObjectName(QString::fromUtf8("graphicsView_6"));
graphicsView_6->setGeometry(QRect(470, 240, 256, 192));
我的頭檔案包含在上面的類中:
#include <chartview.h>
//...
ChartView *graphicsView_6;
//...
class Ui_Form
{
public:
但是通過構建我得到以下錯誤:
Cannot convert argument 'QWidget *' to 'QtCharts :: QChart *'
如何解決?
uj5u.com熱心網友回復:
當您在 ChartView 類建構式中撰寫時,ChartView 需要 QChart成為其父級。當您嘗試推廣它時,您沒有將 QChart 設定為 ChartView 的父級。所以它沒有顯示。
第二個錯誤是您選擇了 QWidget 并且您試圖將圖表視圖提升到它,請選擇一個GraphicsView Item 而不是QWidget。
但是您不應該通過推廣來添加圖表。

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/327427.html
上一篇:在QML中模糊背景
