如何在QML应用中设计一个C++ Model并使用它

如何在QML应用中设计一个C++ Model并使用它,第1张

#ifndef DATALISTMODEL_H

#define DATALISTMODEL_H

#include <QAbstractListModel>

#include <QStringList>

class Data

{

public:

Data(const QString &type, const QString &size);

QString type() const;

QString size() const;

private:

QString m_type;

QString m_size;

};

class DataListModel : public QAbstractListModel

{

Q_OBJECT

public:

enum AnimalRoles {

TypeRole = Qt::UserRole + 1,

SizeRole1

};

DataListModel(QObject parent = 0);

int rowCount(const QModelIndex & parent = QModelIndex()) const;

QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;

Q_INVOKABLE void insert(int index, const Data &data);

Q_INVOKABLE void append(const Data &data);

Q_INVOKABLE void remove(int index);

Q_INVOKABLE void append(const QVariantMap map);

signals:

void countChanged(int arg);

private:

int count() const;

protected:

QHash<int, QByteArray> roleNames() const;

private:

QList<Data> m_list;

};

#endif // DATALISTMODEL_H

在Windows *** 作系统中,大多把配置文件信息写在注册表当中,或写在ini文件中,对于这两种 *** 作都有相应的Windows API函数,在以前的文章中都提及过,这里就不多说了~在Qt中,提供了一个相应的配置文件的类QSetting,使用QSetting类,可以将用户设置以及应用程序的设置轻松存储在磁盘中。QSettings::Scope(配置存储范围)分为UserScope、SystemScope。

QSettings::UserScope:用户环境,设置在当前用户的特定位置中。

QSettings::SystemScope:系统环境,设置在全局型,所有用户均可获得。以下是对应QSettings::Format和QSettings::Scope存放的默认路径位置,其中表示的是对应的程序名称:

Platform Format Scope Path

Windows NativeFormat UserScope HKEY_CURRENT_USERSoftware

SystemScope HKEY_LOCAL_MACHINESoftware

IniFormat UserScope %APPDATA%ini

SystemScope %COMMON_APPDATA%ini

Unix NativeFormat UserScope $HOME/config/conf

SystemScope /etc/xdg/conf

IniFormat UserScope $HOME/config/ini

SystemScope /etc/xdg/ini

Mac OS X NativeFormat UserScope $HOME/Library/Preferences/complist

SystemScope /Library/Preferences/complist

IniFormat UserScope $HOME/config/ini

SystemScope /etc/xdg/ini

在读写时,路径名必须是"/"而不是"\"等。否则不能读写,注意。以Windows XP平台为例,举俩个例子程序~■、读写注册表

//Format为QSettings::NativeFormat

QSettings settings("HKEY_CURRENT_USER\Software\Microsoft\Office",

QSettings::NativeFormat);

//设置键值信息

settingssetValue("110/Outlook/Security/DontTrustInstalledFiles", 0);

//获取键值信息

int value = settingsvalue("110/Outlook/Security/DontTrustInstalledFiles")toInt();

对应的值可是bool,double,QString,QStringList,或者是其他QVariant支持的数据类型,也包括注册过的用户自定义类型。

删除设置对应的是settings->remove( const QString & key );■、读取ini配置文件

先定义下softwareini文件的格式,比较简单:[bolg]

Name = "vicMINg"

//Format为QSettings::IniFormat

QSettings setIni=new QSettings ("software", QSettings::IniFormat);

//设置键值信息

setIni->beginGroup("bolg");

setIni->setValue("Name", "vicMINg");

setIni->endGroup();

//获取键值信息

setIni->beginGroup("bolg");

QString resault = setIni->value("Name")toString();

setIni->endGroup();

qDebug()<<resault;

QSetting的应用并不难,但很有用,一些更细致的 *** 作用法,可以参看帮助文档!可以参照示例:$QTDIRexamplestoolssettingseditor

以上就是关于如何在QML应用中设计一个C++ Model并使用它全部的内容,包括:如何在QML应用中设计一个C++ Model并使用它、如何设置Qt中的build settings、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9647080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存