• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 319, comments - 22, trackbacks - 0, articles - 11
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            其實最為重要的一點,就是App的類型:
            Qt5 中包括:
            QObject -> QCoreApplication -> QGuiApplication -> QApplication

            一般,QML的程序使用QGuiApplication,如果使用QGuiApplication的話,那么QtWidget的相關(guān)類就不能運行正常了。
            需要使用QApplication類來處理,這樣,QtWidget的相關(guān)類就可以使用了。
            特別是我們對標(biāo)準對話框(QFileDialog\ QFontDialog \ QColorDialog)等等


            下面上代碼:


            main.cpp
            =====================================================================
            //![0]
            #include "piechart.h"
            #include <QtQuick/QQuickView>
            #include <QGuiApplication>
            #include <QApplication>

            int main(int argc, char *argv[])
            {
             QApplication app(argc, argv);

             qmlRegisterType<PieChart>("Charts", 1, 0, "PieChart");

             QQuickView view;
             view.setResizeMode(QQuickView::SizeRootObjectToView);
             view.setSource(QUrl::fromLocalFile("app.qml"));
             view.show();
             return app.exec();
            }
            //![0]

            =======================================================================================
            PieChart.h
            =======================================================================================
            #ifndef PIECHART_H
            #define PIECHART_H

            #include <QtQuick/QQuickPaintedItem>
            #include <QColor>

            //![0]
            class PieChart : public QQuickPaintedItem
            {
            //![0]
             Q_OBJECT
             Q_PROPERTY(QString name READ name WRITE setName)
             Q_PROPERTY(QColor color READ color WRITE setColor)

            //![1]
            public:
            //![1]

             PieChart(QQuickItem *parent = 0);

             QString name() const;
             void setName(const QString &name);

             QColor color() const;
             void setColor(const QColor &color);

             void paint(QPainter *painter);

            //![2]
             Q_INVOKABLE void clearChart();

            signals:
             void chartCleared();
            //![2]

            private:
             QString m_name;
             QColor m_color;

            //![3]
            };
            //![3]

            #endif


            ========================================================================================
            PieChart.cpp
            ========================================================================================
            #include "piechart.h"
            #include <QPainter>

            #include <QFileDialog>

            PieChart::PieChart(QQuickItem *parent)
             : QQuickPaintedItem(parent)
            {
            }

            QString PieChart::name() const
            {
             return m_name;
            }

            void PieChart::setName(const QString &name)
            {
             m_name = name;
            }

            QColor PieChart::color() const
            {
             return m_color;
            }

            void PieChart::setColor(const QColor &color)
            {
             m_color = color;
            }

            void PieChart::paint(QPainter *painter)
            {
             QPen pen(m_color, 2);
             painter->setPen(pen);
             painter->setRenderHints(QPainter::HighQualityAntialiasing, true);
             painter->drawPie(boundingRect(), 90 * 16, 290 * 16);
            }

            //![0]
            void PieChart::clearChart()
            {
             QString fileName = QFileDialog::getOpenFileName(0,
             tr("Open Image"), "", tr("Image Files (*.png *.jpg *.bmp)"));
             setColor(QColor(Qt::transparent));
             update();

             emit chartCleared();
            }
            //![0]




            ========================================================================================
            app.qml
            ========================================================================================
             
            //![0]
            import Charts 1.0
            import QtQuick 2.0

            Item {
             width: 300; height: 200

             PieChart {
             id: aPieChart
             anchors.centerIn: parent
             width: 100; height: 100
             color: "red"

             onChartCleared: console.log("The chart has been cleared")
             }

             MouseArea {
             anchors.fill: parent
             onClicked: aPieChart.clearChart()
             }

             Text {
             anchors { bottom: parent.bottom; horizontalCenter: parent.horizontalCenter; bottomMargin: 20 }
             text: "Click anywhere to clear the chart"
             }
            }
            //![0]


            亚洲精品乱码久久久久久自慰| 国内精品久久久久久中文字幕| 无码国内精品久久人妻麻豆按摩| 国内精品久久久久久久涩爱| 久久国产视频99电影| 久久国产劲爆AV内射—百度| 69久久精品无码一区二区| 精品久久人人妻人人做精品| 国产精品久久久久免费a∨| 国产精品美女久久久久久2018| 久久国产成人亚洲精品影院| 一本一本久久aa综合精品| 狠狠精品干练久久久无码中文字幕| 久久人人爽人人爽人人爽| 国产农村妇女毛片精品久久| 伊人久久大香线蕉综合影院首页| 久久精品国产精品青草| 国产精品99久久久精品无码 | 久久99精品久久久久久齐齐| 国产69精品久久久久久人妻精品| 午夜不卡888久久| 久久人妻少妇嫩草AV无码专区| 久久免费视频6| 国产成人香蕉久久久久| 99国产精品久久久久久久成人热| 狠狠色丁香久久婷婷综合蜜芽五月 | 91精品国产色综久久 | 2022年国产精品久久久久| 一本久道久久综合狠狠躁AV| 中文精品久久久久国产网址| 久久精品亚洲一区二区三区浴池 | 国产精品久久久久9999| 伊人久久大香线蕉综合Av | 久久久久亚洲AV无码网站| 亚洲综合精品香蕉久久网| 久久久久精品国产亚洲AV无码 | 91精品国产色综合久久| 国产成人无码久久久精品一| 麻豆AV一区二区三区久久 | 久久综合九色综合欧美狠狠| 2021少妇久久久久久久久久|