Qt文档阅读笔记-C++与QML混合编程(QML画饼状图)【通过信号与槽交互】
生活随笔
收集整理的這篇文章主要介紹了
Qt文档阅读笔记-C++与QML混合编程(QML画饼状图)【通过信号与槽交互】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這里只點名一點:
Qt Charts是利用Qt的圖形視圖框架(QGraphics)搞出來的,底層并不是用OPenGL,而QML卻與OPenGL的底層緊密關聯
?
運行截圖如下:
?
源碼如下:
widget.h
#ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();public slots:void addBtnClicked();void reduceBtnClicked();private:Ui::Widget *ui; };#endif // WIDGET_Hmain.cpp
#include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }widget.cpp
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);ui->quickWidget->setSource(QUrl("qrc:/chart.qml"));QObject *pRoot = (QObject*)ui->quickWidget->rootObject();Q_ASSERT(pRoot);connect(ui->addPushButton,SIGNAL(clicked()),pRoot,SIGNAL(addEaten()));connect(ui->reducePushButton,SIGNAL(clicked()),pRoot,SIGNAL(reduceEaten())); }Widget::~Widget() {delete ui; }void Widget::addBtnClicked() {ui->quickWidget->update(); }void Widget::reduceBtnClicked() {ui->quickWidget->update(); }chart.qml
import QtQuick 2.0 import QtCharts 2.0Rectangle {id: rootChartView {width: parent.widthheight: parent.heighttheme: ChartView.ChartThemeBrownSandantialiasing: truePieSeries {id: pieSeriesPieSlice { id: eaten; label: "eaten"; value: 94.9 }PieSlice { id: unEaten; label: "not yet eaten"; value: 5.1 }}}signal addEatensignal reduceEatenonAddEaten: {eaten.value += 1.5unEaten.value -= 1.5}onReduceEaten: {eaten.value -= 1.5unEaten.value += 1.5}}?
總結
以上是生活随笔為你收集整理的Qt文档阅读笔记-C++与QML混合编程(QML画饼状图)【通过信号与槽交互】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt工作笔记-QSS中关于QScroll
- 下一篇: C++工作笔记- C++中的动态类型与动