开发网站公司交税,个人网站备案 各省,企业公司网站管理系统,深圳网站备案时间先放一个界面效果吧#xff01; 说明#xff1a;该演示程序为一个App管理程序#xff0c;可以将多个App进行吸入管理。
#xff08;动画中的RedRect为一个带有QSplashScreen的独立应用程序#xff09;
左侧边栏用的是QQuickView进行.qml文件的加载#xff08;即QtQuick…先放一个界面效果吧 说明该演示程序为一个App管理程序可以将多个App进行吸入管理。
动画中的RedRect为一个带有QSplashScreen的独立应用程序
左侧边栏用的是QQuickView进行.qml文件的加载即QtQuick环境右侧是用layout进行QWidget的融入QtWidgets环境期间会有多次qml c的交互 一、qml中访问c中的内容
关键点.h中继承QObject、Q_DECLARE_METATYPE.cpp中qmlRegisterType
class AppInfo : public QObject
{Q_OBJECTQ_PROPERTY(QString showName READ showName WRITE setShowName NOTIFY showNameChanged)Q_PROPERTY(QString realName READ realName WRITE setRealName NOTIFY realNameChanged)Q_PROPERTY(QString coreName READ coreName WRITE setCoreName NOTIFY coreNameChanged)Q_PROPERTY(QString iconPath READ iconPath WRITE setIconPath NOTIFY iconPathChanged)
public:AppInfo(QObject* parent nullptr);AppInfo(const QString showName, const QString realName, const QString coreName, const QString iconPath, QObject* parent nullptr);AppInfo(const AppInfo other);AppInfo operator(const AppInfo other);bool operator(const AppInfo other);QString showName() const;QString realName() const;QString coreName() const;QString iconPath() const;void setShowName(const QString showName);void setRealName(const QString realName);void setCoreName(const QString coreName);void setIconPath(const QString iconPath);signals:void showNameChanged();void realNameChanged();void coreNameChanged();void iconPathChanged();private:QString showName_;QString realName_;QString coreName_;QString iconPath_;
};Q_DECLARE_METATYPE(AppInfo)
qmlRegisterTypeAppInfo();
这样以后
1.1.可以直接在qml中进行该类的实例化进而进行访问qmlRegisterType时需要添加参数 1.2.也可以直接在其他类中直接返回该类指针直接给qml进行使用当然前提也是其他类也进行了注册已经在qml里实例化了。
1.3.还可以再c处实例化然后设置到qml上下文中 2.1.也可以直接继承QAbstractListModel等类进行实例化qml中可以直接访问相关属性 主要在于红框中的方法的重写。 二、c中访问qml中的内容
主要在于从qml上下文中获取根QObject*进而通过findChild进行相关元素的获取。进而通过QMetaObject::invokeMethod进行相关qml中function的调用 相关注意点
qml中访问只能访问类的指针不能访问类对象
qmlRegisterType注册类时带了namespace的类类指针在qml中是不能够访问的。