使用 QCustomPlot 繪相簿輔助開發時整理的學習筆記。同系列文章目錄可見 《繪相簿 QCustomPlot 學習筆記》目錄。本篇介紹 QCustomPlot 的一種使用方法,通過包含原始碼的方式進行使用,這也是最常用的方法,範例中使用的 QCustomPlot 版本為 Version 2.1.1
。
詳見本人另一篇部落格 【QCustomPlot】下載,使用時,只需要 qcustomplot.h
與 qcustomplot.cpp
兩個檔案。官網 - QCustomPlot - SettingUp 有對 QCustomPlot 的使用方法做介紹。
把 qcustomplot.h
與 qcustomplot.cpp
兩個檔案放在專案路徑下,然後右鍵 專案名 -> 新增現有檔案...,選擇 qcustomplot.h
與 qcustomplot.cpp
。
由於 QCustomPlot 具有匯出 PDF 的功能,使用到了 printsupport
模組,因此需要在 .pro
工程檔案中新增這一模組,如下所示,注意前面的版本條件。
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
在設計介面中,右鍵某個 QWidget
控制元件,點選 提升為...。
在彈出的對話方塊中,先在 」提升的類名稱「 一欄寫上 QCustomPlot
,注意大小寫要完全一致,然後點選 新增 按鈕,最後點選 提升 按鈕。
至此,這個 QWidget
控制元件就被提升為了 QCustomPlot
控制元件,可以進行繪圖了。
完成以上幾步後,點選左下方的綠色三角,執行專案,會得到一個空的座標軸,如下所示:
在這個區域內,可以使用 QCustomPlot
提供的方法繪製函數曲線圖、引數曲線圖、柱狀圖、箱線圖、熱力圖等,詳見幫助檔案,或本人同系列部落格。這裡提供一個範例,在合適的地方新增如下程式碼:
QVector<double> x = {0,1,2,3,4,5,6,7,8,9};
QVector<double> y = {0,2,4,9,16,25,36,49,64,81};
ui->widget->addGraph();
ui->widget->graph(0)->setData(x, y);
ui->widget->graph(0)->rescaleAxes();
ui->widget->replot();
再次點選左下方的綠色三角,執行專案,會得到以下曲線圖:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
TARGET = demoQCP
TEMPLATE = app
SOURCES += \
main.cpp \
mainwindow.cpp \
qcustomplot.cpp
HEADERS += \
mainwindow.h \
qcustomplot.h
FORMS += \
mainwindow.ui
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 繪圖程式碼
QVector<double> x = {0,1,2,3,4,5,6,7,8,9};
QVector<double> y = {0,2,4,9,16,25,36,49,64,81};
ui->widget->addGraph();
ui->widget->graph(0)->setData(x, y);
ui->widget->graph(0)->rescaleAxes();
ui->widget->replot();
}
MainWindow::~MainWindow()
{
delete ui;
}
除以上四個檔案外,還剩三個檔案:mainwindow.ui
、qcustomplot.h
、qcustomplot.cpp
。其中 mainwindow.ui
是 Qt Creator 生成的預設 UI 檔案,介面中只多了一個提升後的 QCustomPlot
控制元件,可使用同樣步驟再次生成。qcustomplot.h
與 qcustomplot.cpp
即是下載所得的兩個檔案。
本文作者:木三百川
本文連結:https://www.cnblogs.com/young520/p/17489580.html
版權宣告:本文系博主原創文章,著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請附上出處連結。遵循 署名-非商業性使用-相同方式共用 4.0 國際版 (CC BY-NC-SA 4.0) 版權協定。