Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
暴露c++;QML的自定义类型 我有以下C++自定义对象,希望在QML使用为 EnUM < /C> >类型: #include <QtQml> #include <QApplication> #include <QQmlApplicationEngine> #include "database/uepeoplemodel.h" #include "core/uestatus.h" #include "core/uedatabaseconnectionstatus.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); QQmlApplicationEngine engine; UeStatus* ueApplicationStatus=new UeStatus(qApp); UePeopleModel* uePeopleModel=new UePeopleModel(qApp); QObject::connect(uePeopleModel, SIGNAL(ueSignalDatabaseConnectionChanged(UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus)), ueApplicationStatus, SLOT(ueSignalDatabaseConnectionChanged(UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus))); uePeopleModel->ueConnectToDatabase(); engine.rootContext()->setContextProperty("uePeopleModel", uePeopleModel); engine.rootContext()->setContextProperty("ueApplicationStatus", ueApplicationStatus); engine.addImageProvider(QLatin1String("uePeopleModel"), uePeopleModel); qmlRegisterUncreatableType<UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus>("si.mikroelektronika", 1, 0, "UeTypeDatabaseConnectionStatus", "Database Connection Status"); engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec(); } #包括 #包括 #包括 #包括“database/uepeoplemodel.h” #包括“core/uestatus.h” #包括“core/uedatabaseconnectionstatus.h” int main(int argc,char*argv[]) { QApplication应用程序(argc、argv); qqmlaplicationengine; UeStatus*ueApplicationStatus=新UeStatus(qApp); UePeopleModel*UePeopleModel=新的UePeopleModel(qApp); QObject::connect(uePeopleModel, 信号(ueSignalDatabaseConnectionChanged(UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus)), UE应用程序状态, 插槽(ueSignalDatabaseConnectionChanged(UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus)); uePeopleModel->ueConnectToDatabase(); engine.rootContext()->setContextProperty(“uePeopleModel”, 用户模型); engine.rootContext()->setContextProperty(“ueApplicationStatus”, UE(状态); engine.addImageProvider(QLatin1String(“uePeopleModel”), 用户模型); qmlregisteruncreateabletype(“si.mikrolektronika”, 1. 0, “UeTypeDatabaseConnectionStatus”, “数据库连接状态”); engine.load(QUrl(QStringLiteral(“qrc:/main.qml”)); 返回app.exec(); }_C++_Qt_Qml - Fatal编程技术网 ueConnectToDatabase(); engine.rootContext()->setContextProperty(“uePeopleModel”, 用户模型); engine.rootContext()->setContextProperty(“ueApplicationStatus”, UE(状态); engine.addImageProvider(QLatin1String(“uePeopleModel”), 用户模型); qmlregisteruncreateabletype(“si.mikrolektronika”, 1. 0, “UeTypeDatabaseConnectionStatus”, “数据库连接状态”); engine.load(QUrl(QStringLiteral(“qrc:/main.qml”)); 返回app.exec(); },c++,qt,qml,C++,Qt,Qml" /> ueConnectToDatabase(); engine.rootContext()->setContextProperty(“uePeopleModel”, 用户模型); engine.rootContext()->setContextProperty(“ueApplicationStatus”, UE(状态); engine.addImageProvider(QLatin1String(“uePeopleModel”), 用户模型); qmlregisteruncreateabletype(“si.mikrolektronika”, 1. 0, “UeTypeDatabaseConnectionStatus”, “数据库连接状态”); engine.load(QUrl(QStringLiteral(“qrc:/main.qml”)); 返回app.exec(); },c++,qt,qml,C++,Qt,Qml" />

暴露c++;QML的自定义类型 我有以下C++自定义对象,希望在QML使用为 EnUM < /C> >类型: #include <QtQml> #include <QApplication> #include <QQmlApplicationEngine> #include "database/uepeoplemodel.h" #include "core/uestatus.h" #include "core/uedatabaseconnectionstatus.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); QQmlApplicationEngine engine; UeStatus* ueApplicationStatus=new UeStatus(qApp); UePeopleModel* uePeopleModel=new UePeopleModel(qApp); QObject::connect(uePeopleModel, SIGNAL(ueSignalDatabaseConnectionChanged(UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus)), ueApplicationStatus, SLOT(ueSignalDatabaseConnectionChanged(UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus))); uePeopleModel->ueConnectToDatabase(); engine.rootContext()->setContextProperty("uePeopleModel", uePeopleModel); engine.rootContext()->setContextProperty("ueApplicationStatus", ueApplicationStatus); engine.addImageProvider(QLatin1String("uePeopleModel"), uePeopleModel); qmlRegisterUncreatableType<UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus>("si.mikroelektronika", 1, 0, "UeTypeDatabaseConnectionStatus", "Database Connection Status"); engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec(); } #包括 #包括 #包括 #包括“database/uepeoplemodel.h” #包括“core/uestatus.h” #包括“core/uedatabaseconnectionstatus.h” int main(int argc,char*argv[]) { QApplication应用程序(argc、argv); qqmlaplicationengine; UeStatus*ueApplicationStatus=新UeStatus(qApp); UePeopleModel*UePeopleModel=新的UePeopleModel(qApp); QObject::connect(uePeopleModel, 信号(ueSignalDatabaseConnectionChanged(UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus)), UE应用程序状态, 插槽(ueSignalDatabaseConnectionChanged(UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus)); uePeopleModel->ueConnectToDatabase(); engine.rootContext()->setContextProperty(“uePeopleModel”, 用户模型); engine.rootContext()->setContextProperty(“ueApplicationStatus”, UE(状态); engine.addImageProvider(QLatin1String(“uePeopleModel”), 用户模型); qmlregisteruncreateabletype(“si.mikrolektronika”, 1. 0, “UeTypeDatabaseConnectionStatus”, “数据库连接状态”); engine.load(QUrl(QStringLiteral(“qrc:/main.qml”)); 返回app.exec(); }

暴露c++;QML的自定义类型 我有以下C++自定义对象,希望在QML使用为 EnUM < /C> >类型: #include <QtQml> #include <QApplication> #include <QQmlApplicationEngine> #include "database/uepeoplemodel.h" #include "core/uestatus.h" #include "core/uedatabaseconnectionstatus.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); QQmlApplicationEngine engine; UeStatus* ueApplicationStatus=new UeStatus(qApp); UePeopleModel* uePeopleModel=new UePeopleModel(qApp); QObject::connect(uePeopleModel, SIGNAL(ueSignalDatabaseConnectionChanged(UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus)), ueApplicationStatus, SLOT(ueSignalDatabaseConnectionChanged(UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus))); uePeopleModel->ueConnectToDatabase(); engine.rootContext()->setContextProperty("uePeopleModel", uePeopleModel); engine.rootContext()->setContextProperty("ueApplicationStatus", ueApplicationStatus); engine.addImageProvider(QLatin1String("uePeopleModel"), uePeopleModel); qmlRegisterUncreatableType<UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus>("si.mikroelektronika", 1, 0, "UeTypeDatabaseConnectionStatus", "Database Connection Status"); engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec(); } #包括 #包括 #包括 #包括“database/uepeoplemodel.h” #包括“core/uestatus.h” #包括“core/uedatabaseconnectionstatus.h” int main(int argc,char*argv[]) { QApplication应用程序(argc、argv); qqmlaplicationengine; UeStatus*ueApplicationStatus=新UeStatus(qApp); UePeopleModel*UePeopleModel=新的UePeopleModel(qApp); QObject::connect(uePeopleModel, 信号(ueSignalDatabaseConnectionChanged(UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus)), UE应用程序状态, 插槽(ueSignalDatabaseConnectionChanged(UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus)); uePeopleModel->ueConnectToDatabase(); engine.rootContext()->setContextProperty(“uePeopleModel”, 用户模型); engine.rootContext()->setContextProperty(“ueApplicationStatus”, UE(状态); engine.addImageProvider(QLatin1String(“uePeopleModel”), 用户模型); qmlregisteruncreateabletype(“si.mikrolektronika”, 1. 0, “UeTypeDatabaseConnectionStatus”, “数据库连接状态”); engine.load(QUrl(QStringLiteral(“qrc:/main.qml”)); 返回app.exec(); },c++,qt,qml,C++,Qt,Qml,我在Linux work002 3.19.0-28-generic#30 Ubuntu SMP Mon Aug 31 15:52:51 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux上遇到以下编译错误(使用gcc版本4.9.2): 在文件中包括从 /opt/QtOpenSource55/5.5/gcc_64/include/QtCore/qobject.h:40:0, 来自/opt/QtOpenSource55/5.5/gcc_64/include/QtCore/

我在
Linux work002 3.19.0-28-generic#30 Ubuntu SMP Mon Aug 31 15:52:51 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux上遇到以下编译错误(使用
gcc版本4.9.2
):

在文件中包括从 /opt/QtOpenSource55/5.5/gcc_64/include/QtCore/qobject.h:40:0, 来自/opt/QtOpenSource55/5.5/gcc_64/include/QtCore/qabstractanimation.h:37, 来自/opt/QtOpenSource55/5.5/gcc_64/include/QtCore/QtCore:4, 来自/opt/QtOpenSource55/5.5/gcc_64/include/QtQml/QtQmlDepends:3, 来自/opt/QtOpenSource55/5.5/gcc_64/include/QtQml/QtQml:3, from../ueBlagajnaClient/main.cpp:1:/opt/QtOpenSource55/5.5/gcc_64/include/QtCore/qobjectdefs.h:88:5: 错误:类定义不能声明为友元 friend Q_DECL_CONSTEXPR const QMetaObject*qt_getEnumMetaObject(ENUM)Q_DECL_NOEXCEPT{return&staticMetaObject;}\ ^../ueBlagajnaClient/database/。/core/uedatabaseconnectionstatus.h:17:5: 注意:在宏“Q_ENUM”的展开中 Q_枚举(UeTypeDatabaseConnectionStatus) ^/opt/QtOpenSource55/5.5/gcc_64/include/QtCore/qobjectdefs.h:88:35: 错误:“QMetaObject”既不是函数也不是成员函数;无法 交友 friend Q_DECL_CONSTEXPR const QMetaObject*qt_getEnumMetaObject(ENUM)Q_DECL_NOEXCEPT{return&staticMetaObject;}\ ^../ueBlagajnaClient/database/。/core/uedatabaseconnectionstatus.h:17:5: 注意:在宏“Q_ENUM”的展开中 Q_枚举(UeTypeDatabaseConnectionStatus) ^/opt/QtOpenSource55/5.5/gcc_64/include/QtCore/qobjectdefs.h:88:35: 错误:在成员声明末尾应为“;” friend Q_DECL_CONSTEXPR const QMetaObject*qt_getEnumMetaObject(ENUM)Q_DECL_NOEXCEPT{return&staticMetaObject;}\ ^../ueBlagajnaClient/database/。/core/uedatabaseconnectionstatus.h:17:5: 注意:在宏“Q_ENUM”的展开中 Q_枚举(UeTypeDatabaseConnectionStatus) ^/opt/QtOpenSource55/5.5/gcc_64/include/QtCore/qobjectdefs.h:88:73: 错误:ISO C++禁止用“不”声明“qtyGETMeqMeta对象” 类型[-fpermissive] friend Q_DECL_CONSTEXPR const QMetaObject qt_getEnumMetaObject(ENUM)Q_DECL_NOEXCEPT{return&staticMetaObject;}\ ^ ../ueBlagajnaClient/database/。/core/uedatabaseconnectionstatus.h:17:5: 注意:在宏“Q_ENUM”的展开中 Q_枚举(UeTypeDatabaseConnectionStatus) ^../ueBlagajnaClient/database/。/core/uedatabaseconnectionstatus.h:In 成员函数'int UeDatabaseConnectionStatus::qt_getEnumMetaObject(UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus)': /opt/QtOpenSource55/5.5/gcc_64/include/QtCore/qobjectdefs.h:88:101: 错误:无法将“const QMetaObject*”转换为“int*” friend Q_DECL_CONSTEXPR const QMetaObject qt_getEnumMetaObject(ENUM)Q_DECL_NOEXCEPT{return&staticMetaObject;}\ ^ ../ueBlagajnaClient/database/。/core/uedatabaseconnectionstatus.h:17:5: 注意:在宏“Q_ENUM”的展开中 Q_枚举(UeTypeDatabaseConnectionStatus) ^在/opt/QtOpenSource55/5.5/gcc_64/include/QtQml/QtQml:9:0中包含的文件中, 来自../ueBlagajnaClient/main.cpp:1:/opt/QtOpenSource55/5.5/gcc_64/include/QtQml/qqml.h:在实例化中 'int qmlregisteruncreateabletype(常量字符,int,int,常量字符*, 常量QString&[带T= UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus]': ../ueBlagajnaClient/main.cpp:35:120:此处为必填项 /opt/QtOpenSource55/5.5/gcc_64/include/QtQml/qqml.h:83:59:错误: “staticMetaObject”不是的成员 'UeDatabaseConnectionStatus::UeTypeDatabaseConnectionStatus' const char*className=T::staticMetaObject.className()\ ^/opt/QtOpenSource55/5.5/gcc_64/include/QtQml/qqml.h:134:5:note:in 宏“QML\u GETTYPENAMES”的扩展 QML_GETTYPENAMES ^在文件i中
class UeTypeDatabaseConnectionStatus: public QObject
{
    Q_OBJECT

public:
    enum StatusEnum
    {
        NOT_CONNECTED=false,
        CONNECTED=true
    }
    Q_ENUM(StatusEnum)
    ...
}
connectionProperty: UeTypeDatabaseConnectionStatus.CONNECTED;