2011-06-23 24 views
3

MeeGo Processビューアアプリケーションを作成していますが、QMLとC++通信の取得に問題があります。QDeclarativeExtensionPlugin QMLと通信する

クラスの概要

  • リストアイテム - Q_OBJECTとリストモデル
  • 一覧モデルで使用される - このクラスはQDeclarativeExtensionPluginから実装し、作成するために使用されている - このクラスは、QAbstractListModel
  • プラグインを実装QMLが使用できるライブラリ。
#include <QtDeclarative> 
#include <QtDeclarative/qdeclarative.h> 

void ProcPlugin::registerTypes(const char *uri) 
{ 
     qmlRegisterType<ListModel>(uri, 1, 0,"listmodel"); 
}  
Q_EXPORT_PLUGIN2(Proc, ProcPlugin) 

プロジェクトファイル(私はこれが問題であると考えて)

TEMPLATE = lib 
TARGET = proc 
QT += declarative 
CONFIG += qt plugin 

TARGET = $$qtLibraryTarget($$TARGET) 
uri = com.int.components 

# Input 
SOURCES += \ 
    proc_plugin.cpp \ 
    listmodel.cpp \ 
    listitem.cpp \ 
    main.cpp \ 
    process.cpp \ 
    updatedaemon.cpp 

HEADERS += \ 
    proc_plugin.h \ 
    listmodel.h \ 
    listitem.h \ 
    process.h \ 
    updatedaemon.h 

OTHER_FILES = qmldir \ 
    qtc_packaging/meego.spec \ 
    proc.pro.user \ 
    Proc_view.svg 

!equals(_PRO_FILE_PWD_, $$OUT_PWD) { 
    copy_qmldir.target = $$OUT_PWD/qmldir 
    copy_qmldir.depends = $$_PRO_FILE_PWD_/qmldir 
    copy_qmldir.commands = $(COPY_FILE) \"$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_qmldir.target, /, $$QMAKE_DIR_SEP)\" 
    QMAKE_EXTRA_TARGETS += copy_qmldir 
    PRE_TARGETDEPS += $$copy_qmldir.target 
} 

qmldir.files = qmldir 
symbian { 
    # ... 
} else:unix { 
    installPath = /usr/lib/qt4/imports/$$replace(uri, \\., /) 
    qmldir.path = $$installPath 
    target.path = $$installPath 
    INSTALLS += target qmldir 
} 

QML

import QtQuick 1.0 
import "ColumnHelper.js" as ColumnHelper 
import com.int.component 1.0 

Rectangle { 
    id:big_papa 
    width: 680 
    height: 200 




    ListView { 
     id: processView 
     model: processModel 
     property variant columnWidths: ColumnHelper.calcColumnWidths(model, processView) 
     anchors.top: name.bottom 
     anchors.topMargin: name.height 
     anchors.fill: parent 
     delegate: ProcessItem { } 

    } 
} 

エラーメッセージ

main.qml:3:1:モジュール "com.int.component" がインストールされていない

輸入com.int.componentここまで読ん1.0

ありがとう!
カイル

答えて

3

私はこれがvideoだと思います。 C++とQMLを統合する方法を示す良いチュートリアルです。

通常は.PROファイルを台無しにする必要はありませんが、あなたは.qmlprojectファイルにimportPaths: [ ...]ディレクティブを追加する必要があります。

一方

あなたがQ_EXPORT_PLUGIN2(Proc, ProcPlugin)とプラグインエクスポートするようですが、あなたがファイルをQMLで、私はどのimport Proc 1.0が表示されていないが...

+0

ビデオは素晴らしかったです。ありがとう! – kmdent

関連する問題