我编写了简单的C ++类,以便在QT Quick QML中使用它。问题是我无法使用它,因为:module "org.QTPainterTest.Titler" is not installed
,但我已在 main.cpp 文件中正确注册了。班级代码:
#ifndef CTITLER_H
#define CTITLER_H
class CTitler : public QObject
{
Q_OBJECT
Q_PROPERTY(QString title READ title WRITE setTitle)
public:
explicit CTitler(QObject *parent = 0);
QString title() const { return mTitle; }
signals:
public Q_SLOTS:
void setTitle(QString newTitle);
private:
QString mTitle;
};
#endif // CTITLER_H
main.cpp :
#include "ctitler.h"
#include <QtQml/QQmlApplicationEngine>
#include <QtQml/QQmlEngine>
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
qmlRegisterType<CTitler>("org.QTPainterTest.Titler", 1, 0, "CTitler");
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
和QML:
import QtQuick 2.3
import QtQuick.Controls 1.2
import org.QTPainterTest.Titler 1.0
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
CTitler{
id: test
}
Text {
text: test.title
anchors.centerIn: parent
}
}
为什么会这样?如果它很有吸引力,我会使用最新的Qt和最新的QT Creator。
答案 0 :(得分:0)
好的,我已经用该课程重新创建了项目。有用。问题出在前一个项目上。我不知道出了什么问题。