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

广州公司网站制作招聘信息成都手机网站建设哪家公司好

广州公司网站制作招聘信息,成都手机网站建设哪家公司好,wordpress主题无法预览,wordpress订单系统1.简介 QAbstractListModel是Qt框架中的一个抽象类#xff0c;用于实现数据模型#xff0c;用于在Qt的视图组件中展示和编辑列表数据。与QAbstractTableModel类似#xff0c;它也是一个抽象类#xff0c;提供了一些基本的接口和默认实现#xff0c;可以方便地创建自定义的…1.简介 QAbstractListModel是Qt框架中的一个抽象类用于实现数据模型用于在Qt的视图组件中展示和编辑列表数据。与QAbstractTableModel类似它也是一个抽象类提供了一些基本的接口和默认实现可以方便地创建自定义的列表数据模型。 QAbstractListModel的主要功能包括以下几点 数据的获取和设置通过实现data()和setData()接口可以用于获取和设置列表中的数据。可以根据自己的数据结构和逻辑在这两个接口中进行相关的操作。data()方法用于获取指定索引位置的数据setData()方法用于设置指定索引位置的数据。列表项的管理可以通过rowCount()方法获取列表中的项数。也可以通过insertRows()和removeRows()方法动态地增加或删除列表项。列表的显示和编辑可以通过实现displayRole和editRole相关方法来确定列表数据在视图中的显示和编辑方式。也可以通过实现flags()方法来指定每个列表项的编辑属性。数据的排序可以通过实现sort()方法来对列表中的数据进行排序。 由于该模型提供了比QAbstractItemModel更专业的接口因此不适合与树视图一起使用如果您想提供一个用于此目的的模型则需要对QAbstractItemModel进行子类化。如果您需要使用多个列表模型来管理数据则可能更适合使用子类QAbstractTableModel。 继承QAbstractListModel需要重写rowCount()、data()、insertRows()、removeRows()等函数。 rowCount()函数返回模型的行数。data()函数返回指定索引处的数据。insertRows()插入行removeRows()删除行 2.示例 声明数据结构体 typedef struct _student {QString name;int age;double score; }Student; 重写rowCount()、data()、insertRows()和removeRows()等函数。  #ifndef MYLISTMODEL_H #define MYLISTMODEL_H#include QAbstractListModel #include QObject #include QListtypedef struct _student {QString name;int age;double score; }Student;class MyListModel : public QAbstractListModel {Q_OBJECT public:MyListModel(QObject *parent nullptr);enum RoleNames{Name,Age,Score};public://更新void update(QListStudent students);// 返回列表中行的数量virtual int rowCount(const QModelIndex parent QModelIndex()) const;// 返回指定索引处的数据virtual QVariant data(const QModelIndex index, int role Qt::DisplayRole) const;//插入行virtual bool insertRows(int row, int count, const QModelIndex parent QModelIndex());//删除行virtual bool removeRows(int row, int count, const QModelIndex parent QModelIndex());private:QListStudent m_lstStu; };#endif // MYLISTMODEL_H#include MyListModel.hMyListModel::MyListModel(QObject *parent): QAbstractListModel(parent) {}void MyListModel::update(QListStudent students) {m_lstStu students;for(int i0;im_lstStu.size();i){beginInsertRows(QModelIndex(),i,i);endInsertRows();} }int MyListModel::rowCount(const QModelIndex parent) const {Q_UNUSED(parent);return m_lstStu.size(); }QVariant MyListModel::data(const QModelIndex index, int role) const {if(!index.isValid())return QVariant();int nRow index.row();Student stu m_lstStu.at(nRow);if (role Qt::DisplayRole || role Qt::EditRole){QString ret QString(%1_%2_%3).arg(stu.name).arg(stu.age).arg(stu.score);return ret;}return QVariant(); }bool MyListModel::insertRows(int row, int count, const QModelIndex parent) {if (row 0 row m_lstStu.size()){beginInsertRows(parent, row, row count - 1);for (int i 0; i count; i){//插入一个空的数据Student stu;stu.name QString();stu.age 0;stu.score 0;m_lstStu.insert(row, stu);}endInsertRows();return true;}return false; }bool MyListModel::removeRows(int row, int count, const QModelIndex parent) {if (row 0 row count m_lstStu.size()){beginRemoveRows(parent, row, row count - 1);for (int i 0; i count; i){m_lstStu.removeAt(row);}endRemoveRows();return true;}return false; } 使用示例 #include ListForm.h #include ui_ListForm.h #include MyListModel.hMyListModel *pModel nullptr;ListForm::ListForm(QWidget *parent) :QWidget(parent),ui(new Ui::ListForm) {ui-setupUi(this);//去除选中虚线框ui-listView-setFocusPolicy(Qt::NoFocus);//设置整行选中ui-listView-setSelectionBehavior(QAbstractItemView::SelectRows);pModel new MyListModel(this);// 构造数据更新界面QListStudent students;QListQString nameList;nameList张三李四王二赵五刘六;for (int i 0; i 5; i){Student student;student.name nameList.at(i);student.age qrand()%6 13;//随机生成13到19的随机数student.score qrand()%20 80;//随机生成0到100的随机数;students.append(student);}pModel-update(students);ui-listView-setModel(pModel); }ListForm::~ListForm() {delete ui; }void ListForm::on_btnInsert_clicked() {if(!pModel)return;int row ui-listView-currentIndex().row();if(row 0)return;pModel-insertRows(row1,1); }void ListForm::on_btnDel_clicked() {if(!pModel)return;int row ui-listView-currentIndex().row();if(row 0)return;pModel-removeRows(row,1); }3.推荐 Qt 继承QAbstractTableModel实现自定义TableModel-CSDN博客 Qt 插件开发详解_qt插件化开发-CSDN博客 Qt 继承QAbstractTableModel实现自定义TableModel-CSDN博客
http://www.hkea.cn/news/14349685/

相关文章:

  • 甘肃省建设厅网站官网WordPress附件图片弹窗
  • 制作酒店网站百度推广seo
  • 网站开发软件标书范本百度seo不正当竞争秒收
  • 门户网站界面设计模板下载禁止国内ip访问 网站
  • 外贸建网站wordpress 中英主题
  • wordpress不显示网站标题江西网站设计电话
  • 百度注册域名免费建站有免费查企业的软件吗
  • 医药网站文案编辑是怎么做的吉林省建设厅网站专家
  • 学做西餐网站钓鱼网站源码
  • 哪个网站做自媒体比较好百度建设网站的目的
  • 成都网站制作和建设外国人做的甲骨文网站
  • 盐城永祥建设有限公司网站不忘初心 继续前进网站怎么做
  • 网站设计外包协议保定网站建设价格低
  • 有口碑的网站建设公司12380网站建设的意见建议
  • 福州仿站定制模板建站kol营销
  • 泰州网站制作如何提高网站设计能力
  • 站内seo优化北京网站制作公司哪家好
  • 海西州公司网站建设建筑图集网站07fs02图集
  • 定制网站大概多少钱阿里云com域名注册万网
  • 网站开发vsc网站开发公司做网站一个人能做吗
  • 中国铁建华南建设有限公司网站wordpress 分类信息模板
  • 广告推销网站电子商务网站软件建设的核心
  • 内蒙古住房和城乡建设厅官方网站中华企业网站建设
  • 全国网站建设公司排名北京市保障性住建设投资中心网站首页
  • 模板网站怎么做才美观宁波网站seo公司
  • 试用型网站怎么做邯郸网站设计培训班
  • 南京建设个人网站亮点网络科技有限公司
  • 网站建设中 什么意思智能建站cms管理系统
  • 做健康食品的网站建筑模板厂投资多少钱
  • 广东省建筑安全员证查询官网一键优化ppt