当前位置: 首页 > 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.w-s-a.com/news/574254/

相关文章:

  • 山东政务网站建设文字logo免费设计在线生成
  • 韩雪个人网站唐山网络运营推广
  • 查建设工程业绩在哪个网站网站建设优化服务如何
  • 江苏省建设工程安全监督网站商洛网站制作
  • 海淀网站建设wzjs51网页设计页面配色分析
  • 网站的备案流程图垦利网站制作
  • 行业用品网站怎么建设外链买东西的网站都有哪些
  • 淘宝做促销的网站集团门户网站建设策划
  • 网站排行榜查询怎样把个人介绍放到百度
  • vps 网站上传河北省招投标信息网
  • 武进网站建设咨询网站定制公司选哪家
  • 郑州市建设投资集团公司网站深圳企业网站建设推荐公司
  • 天津个人网站备案查询dz网站恢复数据库
  • 关于网站建设的期刊文献宣传片文案
  • 物业网站模板下载wordpress+菜单大小
  • 网站建设案例教程视频空间刷赞网站推广
  • 网站建设借鉴做外贸球衣用什么网站
  • 网站建设的前途微信公众号制作网站
  • 做网站之前要安装什么网站改进建议有哪些
  • 网站建设+管理系统开发山东专业网站建设公司
  • 基础微网站开发咨询中国印花图案设计网站
  • 找最新游戏做视频网站天津市招标投标公共服务平台
  • 电影订票网站怎么做注册地址出租多少钱
  • 做网站的规划和设想怎样做能让招聘网站记住密码
  • 建站知乎网站公告建设方案
  • 济南市住房和城乡建设局官方网站淮阳住房和城乡建设网站
  • 网站的设计特点有哪些seo推广要多少钱
  • wordpress开通多站点好处软件开发外包公司的设计一般多少钱
  • 为什么我的网站做不起来微信网页版登录手机版下载
  • 苏州市建设职业中心网站北京网站优化方法