当前位置: 首页 > news >正文

招聘网站哪个好英文域名在哪个网站查询

招聘网站哪个好,英文域名在哪个网站查询,注册电气工程师报考条件,十大网络舆情案例qt提供了几个视图来进行信息的列表显示#xff0c;QListView可以用来显示继承QStractListModel的字符串列表中的字符串#xff0c;默认的模型里面只包含一列的内容#xff1a; 这里以qml为例子#xff0c;先新建一个qml的项目#xff0c;示例代码如下#xff1a; 先创建一…qt提供了几个视图来进行信息的列表显示QListView可以用来显示继承QStractListModel的字符串列表中的字符串默认的模型里面只包含一列的内容 这里以qml为例子先新建一个qml的项目示例代码如下 先创建一个列表的只读模型以QAbstractListModel为基类最基础的只用实现两个函数即可rowCount()和 data()一个用来返回模型的行数一个用来返回指定的模型索引的数据项 //返回模型的行数int rowCount(const QModelIndex parent QModelIndex()) const;//返回指定模型索引的数据项QVariant data(const QModelIndex index, int role) const;使用一个QStringList列表来作为内部的数据源 QStringList m_strValue;现在来开始实现这两个函数这两个函数的实现是比较简单的 int MyListModel::rowCount(const QModelIndex parent) const {Q_UNUSED(parent);return m_strValue.count(); }QVariant MyListModel::data(const QModelIndex index, int role) const {if(!index.isValid())return QVariant();if(role Qt::DisplayRole)return m_strValue.at(index.row());return QVariant(); }再建立一个设置改列表值的函数因为后面要将测试的model注册到qml中去所以不方便再构造函数中将QStringList的值设置下去所以这里添加一个setDataModel()函数函数的定义如下 void MyListModel::setDataModel(const QStringList var) {if(var.isEmpty())return ;m_strValue var; }到这里对MyListModel的类的完善已经差不多了接下来新增一个测试的类来添加数据到列表中去 这里直接给出两个文件如下 testlistmodel.h #ifndef TESTLISTMODEL_H #define TESTLISTMODEL_H#include QObject #include mylistmodel.hclass TestListModel : public QObject {Q_OBJECT public:explicit TestListModel(QObject *parent nullptr);MyListModel m_model;signals:};#endif // TESTLISTMODEL_H testlistmodel.cpp #include testlistmodel.hTestListModel::TestListModel(QObject *parent) : QObject(parent) {QStringList list;for(int i 0; i 30; i){list QString(第%1个).arg(i);}m_model.setDataModel(list); } 最后再main.cpp中将model注册到qml中 #include QGuiApplication #include QQmlApplicationEngine #include QQmlContext #include testlistmodel.hint main(int argc, char *argv[]) {QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);QGuiApplication app(argc, argv);QQmlApplicationEngine engine;TestListModel model;engine.rootContext()-setContextProperty(testModel, model.m_model);const QUrl url(QStringLiteral(qrc:/main.qml));QObject::connect(engine, QQmlApplicationEngine::objectCreated,app, [url](QObject *obj, const QUrl objUrl) {if (!obj url objUrl)QCoreApplication::exit(-1);}, Qt::QueuedConnection);engine.load(url);return app.exec(); } 接下来在qml中使用ListView组件并指定使用的model就可以了。 main.qml如下 import QtQuick 2.12 import QtQuick.Window 2.12Window {visible: truewidth: 640height: 480title: qsTr(Hello World)ListView {anchors.fill: parent;model:testModel;delegate: Text {id: ttheight:30;text: display;//Qt::DisplayRole提供一个角色名display}} } 运行结果如下 这就是一个列表显示根据在c中提供的数据注册到qml中来显示的动图这里就不展示了。 可以看到这里显示的是一列的内容如果要使用ListView来显示多列的内容应该如何去设计model呢这里就需要去修改数据类型也就是不能继续用QStringList作为存储数据的了需要重新设计一个数据类型可以去报存多个数据这里选取的数据类型如下 QMapint, QMapint,QVariant tmp; //使用QMap来存存放数据内嵌一个QMap来存放每一行的各个列的数据 //内嵌的QMap也可单独设计一个类来实现只不过在后续的其他方面也需要做不同的修改这里先不说定义一个这样的容器来做数据的存放还要在原有的基础上添加几个函数也要重写roleNames()函数如下 再新增一个变量用来存放角色role: QHashint, QByteArray m_roleName();后面直接放上修改后的文件改的内容比较多直接在代码中标注出来 mylistmodel.h #ifndef MYLISTMODEL_H #define MYLISTMODEL_H#include QObject #include QAbstractListModelclass MyListModel : public QAbstractListModel {Q_OBJECT public:MyListModel(QObject *parent 0);//返回模型的行数int rowCount(const QModelIndex parent QModelIndex()) const;//返回指定模型索引的数据项QVariant data(const QModelIndex index, int role) const;//设置模型数据void setDataModel(const QMapint, QMapint, QVariant var);//返回列int columnCount(const QModelIndex parent QModelIndex()) const;QHashint, QByteArray roleNames() const;void insertRoleName(const int role, const QByteArray name);private:QStringList m_strValue;QMapint, QMapint, QVariant m_map;QHashint, QByteArray m_roleName;};#endif // MYLISTMODEL_H mylistmodel.cpp #include mylistmodel.hMyListModel::MyListModel(QObject* parent) : QAbstractListModel(parent) {}int MyListModel::rowCount(const QModelIndex parent) const {Q_UNUSED(parent);return m_map.count();//改为m_map }QVariant MyListModel::data(const QModelIndex index, int role) const {if(!index.isValid())return QVariant();if(index.row() m_map.size())return QVariant();if(role Qt::UserRole) //使用QT提供的自定义的角色的值累加{QMapint, QVariant var m_map.value(index.row());return var.value(role);}return QVariant(); }void MyListModel::setDataModel(const QMapint, QMapint, QVariant var) {if(var.isEmpty())return ;m_map var; }int MyListModel::columnCount(const QModelIndex parent) const {Q_UNUSED(parent);return m_roleName.count(); }QHashint, QByteArray MyListModel::roleNames() const {return m_roleName; }void MyListModel::insertRoleName(const int role, const QByteArray name) {m_roleName.insert(role, name); } testlistmodel.cpp #include testlistmodel.hTestListModel::TestListModel(QObject *parent) : QObject(parent) {QMapint, QMapint, QVariant var;for(int i 0; i 30; i){QMapint,QVariant map;map.insert(Qt::UserRole,QString(第%1个).arg(i));map.insert(Qt::UserRole1,QString(产品%1个).arg(i));var.insert(i,map);}m_model.setDataModel(var);//添加角色m_model.insertRoleName(Qt::UserRole,Column_One);m_model.insertRoleName(Qt::UserRole1,Column_Two);} main.qml import QtQuick 2.12 import QtQuick.Window 2.12Window {visible: truewidth: 640height: 480title: qsTr(Hello World)ListView {anchors.fill: parent;model:testModel;delegate: Item {id: it;height:30;width:parent.width;Row {anchors.fill: parent;Text{width:parent.width/2;text: Column_One;}Text {width:parent.width/2;text: Column_Two;}}}}} 以上就是所作的修改效果图如下 以上可能还有许多需要完善和修改的地方后续会跟进修改和优化。需要源码的可以留言邮箱。
http://www.hkea.cn/news/14465530/

相关文章:

  • 怎样更新网站快照h5制作小程序有哪些
  • 做网站维护工资多少白云建设网站
  • 网站建设项目实训心得网站栏目关键词
  • 如何做实验室网站做公司网站有用吗
  • wordpress建站欣赏网站的技术建设方案
  • 什么是网络营销策略优化大师的功能有哪些
  • 株洲建设网站制作做网站的第一步
  • 上海市建设工程材料网站合肥科技网站建设
  • 建立旅游公司网站多钱wordpress怎么实时刷新数据
  • 建设企业网站中国建设银行开一个小公司需要多少钱
  • 免费个人网站建设公司业务外包是什么意思
  • 云南工程建设投标网上报名网站西安品牌策划公司排名
  • 网站图片怎么做超链接做外贸生意用哪个网站
  • 阿里国际网站官网入口制作网站链接
  • 好网站用户体验网站外部推广
  • 凡科建站平台wordpress怎么设置广告位
  • 服务推广网站作业网站建设方案
  • 上海工程建设招投标网站网址导航华图
  • 友情链接购买平台青岛网站seo推广
  • 贵州省网站备案建筑资料网
  • 网站维护细则如何做网络营销推广预算
  • 有哪些网站可以免费做推广手机网站底部电话
  • 最大的网站建设公司网络营销软件哪个好用
  • 百度怎么搜索到自己的网站网站建设快速便宜
  • 网站建设策划优点深圳 学习网站
  • 网站首页焦点图永久免费建站地址
  • 网站维护描述西安便民信息发布平台
  • 淄博哪有培训做网站的网站建设满意度调查问卷
  • 网站建设安全性指标蓝色企业网站配色
  • 建设网站制作哪家好网站架构设计英文翻译