QT學習筆記 QCharts的簡單應用

2021-10-08 14:02:39 字數 2129 閱讀 9667

官方推出的qcharts以後,qt畫圖再也不用需要配置第三方的qcustomplot和qwt外掛程式了,qcharts功能比兩者都好,且易用安裝和使用。我用的是目前最新版的5.11.1這個版本(強烈推薦公升級)。安裝的時候只需要勾選qtcharts就行了。

qt    += charts

然後再程式的開頭加上乙個巨集

qt_charts_use_namespace

都儲存以後,就可以開始了。

新增qcharts必須的標頭檔案:

#include #include

然後建立例項:

qchart *chart; qchartview *chartview;

還有新建乙個series作為圖表的資料來源:

qbarseries (用於建立柱狀圖)

qhorizontalbarseries (用於建立水平柱狀圖)

qhorizontalpercentbarseries (用於建立水平百分比柱狀圖)

qhorizontalstackedbarseries (用於建立水平層疊圖)

qpercentbarseries (用於建立百分比柱狀圖)qstackedbarseries (用於建立層疊圖/堆疊的條形圖)

qareaseries (用於建立面積圖)

qboxplotseries (用於建立箱形圖/盒須圖)

qpieseries (用於建立餅圖)

qxyseries (線性圖、曲線圖、散點圖的基類) 

qlineseries (用於建立折線圖) 

qsplineseries (用於建立曲線圖)

qscatterseries (用於建立散點圖)

我們畫乙個曲線圖,所以選擇qsplineseries,新增標頭檔案並建立例項:

#include

qsplineseries *series;

還要建立座標軸(也可直接建立預設座標軸),和選擇視窗布局,新增標頭檔案並建立例項:

#include #include

qhboxlayout *layout;qvalueaxis *axisx;qvalueaxis *axisy;

**如下:

pro檔案:

qt += charts

**件:

#ifndef widget_h

#define widget_h

#include #include #include #include #include #include #include using namespace qtcharts; //與下一行含義相同

//qt_charts_use_namespace

qt_begin_namespace

namespace ui

qt_end_namespace

class widget : public qwidget

;#endif // widget_h

cpp檔案:

#include "widget.h"

#include "ui_widget.h"

widget::widget(qwidget *parent)

: qwidget(parent)

, ui(new ui::widget)

widget::~widget()

ui介面拖拽乙個widget即可

記錄下來,以後忘了就不用到處找了。還有乙個發現就是可以不用建立qcharts例項,使用chartview->chart()替代**中的chart也可以使用。沒有深究。

最後的效果圖貼上:

注意:在分主要刻度和刻度時要計算,否則畫出來的點是錯誤的;

主要刻度: 要分的份數 + 1;也可以理解為實線的個數,因為0也算一條實線

例1:x軸的最大值是20,想要分成4份,則主要刻度就是 4+1

例2:x軸的最大值是20,想要分成20份,則主要刻度就是20+1

刻度:上乙個主要刻度和下個主要刻度中的區域分成幾份;可以理解為兩個實線間虛線的個數,因為網格線用虛線表示

(例如,x軸最大值是20,要分成4份,則在0到5之間需要四個網格,所以這裡寫4)

qt學習筆記(六)之簡析物件樹

qt提供了一種機制,能夠自動 有效的組織和管理繼承自qobject的qt物件,這種機制就是物件樹。qt物件樹在使用者介面程式設計上是非常有用的。它能夠幫助程式設計師減輕記憶體洩露的壓力。比如說當應用程式建立了乙個具有父視窗部件的物件時,該物件將被加入父視窗部件的孩子列表。當應用程式銷毀父視窗部件時,...

qt學習筆記(六)之簡析物件樹

qt提供了一種機制,能夠自動 有效的組織和管理繼承自qobject的qt物件,這種機制就是物件樹。qt物件樹在使用者介面程式設計上是非常有用的。它能夠幫助程式設計師減輕記憶體洩露的壓力。比如說當應用程式建立了乙個具有父視窗部件的物件時,該物件將被加入父視窗部件的孩子列表。當應用程式銷毀父視窗部件時,...

Qt學習筆記

1.參考資料 1 2 3 4 5 6 2.faq 2.1.qt creator 2.1.1.xp下用qt creator編譯自帶例子mdi sdi 當不勾選projects build settings build environment的 clear system environment 時,編譯...