Qt Quick 學(xué)習(xí)筆記 5.30

這大概會(huì)成為“一周突破Qt + QML "編程系列

1.debug 的使用

  • Header: #include <QDebug>
  • qmake: QT += core
  • basic use:
   qDebug() << "Date:" << QDate::currentDate();
   qDebug() << "Types:" << QString("String") << QChar('x') 
                   << QRect(0, 10, 50, 40);
   qDebug() << "Custom coordinate type:" << coordinate;

2.QQuickImageProvider Class的使用

  • Header: #include <QQuickImageProvider>
  • qmake: QT += quick
  • Since: Qt 5.0
  • Inherits: QQmlImageProviderBase
  • Inherited By:QQuickAsyncImageProvider
  • public funciton:
    有兩個(gè)虛函數(shù)
    • virtual QImage requestImage(const QString &id, QSize size, const QSize &requestedSize*)
      用于返回Qimage類型匾二,其中:
    • id 對(duì)應(yīng)qml中image的source宛畦,例如在下面的main.qml中冈在,source:“source: "image://myprovider/yellow"",則id是source
    • requestedSize 是Image Item的尺寸勃蜘,如果image 中定義了width和height屬性,則該寬和長會(huì)傳給requesetedSzie
    • size
  • virtual QPixmap *requestPixmap (const QString &id, QSize size, const QSize &requestedSize)
    用于返回qpixmap 類型
  • examples:
//myprovider.h
#ifndef MYPROVIDER_H
#define MYPROVIDER_H

#include <QObject>
#include <QQuickImageProvider>
#include <QImage>
#include <QSize>
class MyProvider : public QQuickImageProvider
{
public:
    MyProvider();
    ~MyProvider();
    QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize);
    //requestPixmap 是指返回qpixmap
};

#endif // MYPROVIDER_H
//myprovider.cpp
#include "myprovider.h"
#include<QDebug>
#include<QPixmap>
MyProvider::MyProvider():
    QQuickImageProvider(QQuickImageProvider::Pixmap)
{
}

MyProvider::~MyProvider(){
}

QPixmap MyProvider::requestPixmap(const QString &id, QSize *size, const QSize &requestedSize)
{
    int width = 100;
    int height = 50;

    if (size)
        *size = QSize(width, height);
    QPixmap pixmap(requestedSize.width() > 0 ? requestedSize.width() : width,
                   requestedSize.height() > 0 ? requestedSize.height() : height);
    pixmap.fill(QColor(id).rgba());
    qDebug()<<id;

    return pixmap;
}
//main.cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include "myprovider.h"

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    MyProvider *imgprovider = new MyProvider();
    QQmlApplicationEngine engine;
    engine.addImageProvider("myprovider",imgprovider);
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    return app.exec();
}
//main.qml
import QtQuick 2.6
import QtQuick.Window 2.2
import QtQuick.Controls 1.4

Window {
    visible: true
    width: 800
    height: 600
    Column{
        anchors.centerIn: parent
        Image{
            id:img  
            width: 200
            height: 100
            source: "image://myprovider/yellow"
            //MyProvider::requestPixmap(***)的id是yellow
        }
        Image {
            id: img2
            source: "image://myprovider/green"
        }
    }
}

3 .qquickview

  • usage:
QQuickView *view = new QQuickView;
view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));
view->show();

4.使用插件拓展QML功能

  • QML插件配置()

  • 解決“ module "myplugin" is not installed” 的問題

 1. 目錄結(jié)構(gòu):
  QMLPluginTest
      | - myplugin // 該目錄下需含有qmldir插件和自定義的qml文件
            | - MyRect.qml  // 自定義的qml文件
            | - qmldir
      | - app
            | -  main.qml // 里面使用了MyRect組件
2.app.pro的配置
      添加:QML_IMPORT_PATH = $$PWD/../ 
      其中:$$PWD指得是源文件的配置目錄,此處讓main.qml可以找到myplugin所在目錄(目錄為
myplugin,組件名和目錄名應(yīng)該相同)
3.qmldir 的內(nèi)容:
module myplugin
MyRect 1.0 MyRect.qml
4.app工程中,在main.cpp中添加如下代碼柠新,從而找到組件:
    QQmlApplicationEngine engine;
    engine.addImportPath("E:\\dev\\QT\\QML\\QMLPluginText"); //該目錄下,能找到和模塊名相同的文件夾
名辉巡,模塊存在文件夾下(即myplugin目錄下恨憎,有myplugin模塊中定義的qml文件,參考上面的目錄結(jié)構(gòu))
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末红氯,一起剝皮案震驚了整個(gè)濱河市框咙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌痢甘,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茉贡,死亡現(xiàn)場離奇詭異塞栅,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)腔丧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門放椰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人愉粤,你說我怎么就攤上這事砾医。” “怎么了衣厘?”我有些...
    開封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵如蚜,是天一觀的道長。 經(jīng)常有香客問我影暴,道長错邦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任型宙,我火速辦了婚禮撬呢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妆兑。我一直安慰自己魂拦,他們只是感情好毛仪,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芯勘,像睡著了一般箱靴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上借尿,一...
    開封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天刨晴,我揣著相機(jī)與錄音,去河邊找鬼路翻。 笑死狈癞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的茂契。 我是一名探鬼主播蝶桶,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼掉冶!你這毒婦竟也來了真竖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤厌小,失蹤者是張志新(化名)和其女友劉穎恢共,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體璧亚,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡讨韭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了癣蟋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片透硝。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖疯搅,靈堂內(nèi)的尸體忽然破棺而出濒生,到底是詐尸還是另有隱情,我是刑警寧澤幔欧,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布罪治,位于F島的核電站,受9級(jí)特大地震影響琐馆,放射性物質(zhì)發(fā)生泄漏规阀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一瘦麸、第九天 我趴在偏房一處隱蔽的房頂上張望谁撼。 院中可真熱鬧,春花似錦、人聲如沸厉碟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽箍鼓。三九已至崭参,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間款咖,已是汗流浹背何暮。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铐殃,地道東北人海洼。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像富腊,于是被迫代替她去往敵國和親坏逢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理赘被,服務(wù)發(fā)現(xiàn)是整,斷路器,智...
    卡卡羅2017閱讀 134,702評(píng)論 18 139
  • 1.初識(shí) Qt5 本書將為大家介紹使用 Qt 5.x 版本開發(fā)應(yīng)用程序的不同方面民假。我們將專注于新的 Qt Quic...
    趙者也閱讀 2,586評(píng)論 0 8
  • solve problem: Cannot open: qrc:/.ded.jpg 使用Image 模塊載入圖像浮入,...
    fwei閱讀 569評(píng)論 0 0
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,857評(píng)論 6 342
  • 攝計(jì)魔士大法師不僅煉丹,也練功羊异。他有一種獨(dú)門法術(shù)舵盈,修女不修男,需要和弟子在密室成雙修煉球化,以獲通靈之神丹。在整個(gè)修煉...
    離枝閱讀 630評(píng)論 4 1