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

做设计任务的网站网站建设与管理实践心得

做设计任务的网站,网站建设与管理实践心得,平面设计图数字标识,军事新闻视频在线观看1.简介 在开发过程中,我们需要通过点击表头来对QTableView或QTreeView等一系列高级视图进行排序操作,以下是进行排序的步骤。 步骤: 首先创建了一个QStandardItemModel对象或者继承QAbstractTableModel类作为数据模型,并设置了…

1.简介

在开发过程中,我们需要通过点击表头来对QTableView或QTreeView等一系列高级视图进行排序操作,以下是进行排序的步骤。

步骤:

  • 首先创建了一个QStandardItemModel对象或者继承QAbstractTableModel类作为数据模型,并设置了一些数据。
  • 然后创建一个QTableView对象,并将数据模型设置为其模型。
  • 接下来,创建一个QSortFilterProxyModel对象,并将QStandardItemModel对象设置为其源模型。
  • 然后设置QTableView开启排序功能。
  • 最后将QSortFilterProxyModel对象设置为QTableView的模型。

2.示例

自定义QAbstractTableModel类:

#ifndef MYTABLEMODEL_H
#define MYTABLEMODEL_H#include <QAbstractTableModel>
#include <QObject>
#include <QList>typedef struct _student
{QString name;int age;double score;
}Student;class MyTableModel : public QAbstractTableModel
{Q_OBJECT
public:MyTableModel(QObject *parent = nullptr);enum RoleNames{Name,Age,Score};public://更新void update(QList<Student> students);//行数量virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;//列数量virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;// 表格项数据virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;// 表头数据virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;private:QList<Student> m_lstStu;
};#endif // MYMODEL_H#include "MyTableModel.h"MyTableModel::MyTableModel(QObject *parent): QAbstractTableModel(parent)
{}void MyTableModel::update(QList<Student> students)
{m_lstStu = students;for(int i=0;i<m_lstStu.size();i++){beginInsertRows(QModelIndex(),i,i);endInsertRows();}
}int MyTableModel::rowCount(const QModelIndex &parent) const
{Q_UNUSED(parent);return m_lstStu.count();
}int MyTableModel::columnCount(const QModelIndex &parent) const
{Q_UNUSED(parent);return 3;
}QVariant MyTableModel::data(const QModelIndex &index, int role) const
{if (!index.isValid())return QVariant();int nColumn = index.column();int nRow = index.row();Student stu = m_lstStu.at(nRow);if(role == Qt::DisplayRole){if (nColumn == MyTableModel::Name)return stu.name;else if(nColumn == MyTableModel::Age)return stu.age;else if(nColumn == MyTableModel::Score)return stu.score;}return QVariant();
}QVariant MyTableModel::headerData(int section, Qt::Orientation orientation, int role) const
{Q_UNUSED(section);if(orientation == Qt::Horizontal && role == Qt::DisplayRole){if (section == MyTableModel::Name)return QStringLiteral("姓名");else if(section == MyTableModel::Age)return QStringLiteral("年龄");else if(section == MyTableModel::Score)return QStringLiteral("分数");}return QVariant();
}

使用代码示例:

#include "form.h"
#include "ui_form.h"
#include "MyTableModel.h"
#include <QSortFilterProxyModel>Form::Form(QWidget *parent) :QWidget(parent),ui(new Ui::Form)
{ui->setupUi(this);//去除选中虚线框ui->tableView->setFocusPolicy(Qt::NoFocus);//设置最后一栏自适应长度ui->tableView->horizontalHeader()->setStretchLastSection(true);//设置整行选中ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);//不显示垂直表头ui->tableView->verticalHeader()->setVisible(false);MyTableModel *pModel = new MyTableModel(this);// 构造数据,更新界面QList<Student> students;QList<QString> 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->tableView->setModel(pModel);// 设置可排序ui->tableView->setSortingEnabled(true);// 设置数据源模型QSortFilterProxyModel *pProxyModel = new QSortFilterProxyModel(this);pProxyModel->setSourceModel(pModel);ui->tableView->setModel(pProxyModel);// 设置按得分降序排列ui->tableView->sortByColumn(MyTableModel::Score, Qt::DescendingOrder);
}Form::~Form()
{delete ui;
}

http://www.yayakq.cn/news/784784/

相关文章:

  • 网站建设 人和商圈网站做贸易用什么色调比较好
  • 手机如何翻到国外网站品牌的网站建设
  • 阿里云建设网站费用网站企业型类
  • 网站高级?O置天津网站建设方案策划
  • 做直播网站找哪家网站好模板网传奇手游
  • 建设常规的网站报价是多少钱wordpress不能更新
  • 怎样创建网站北京平台网站建设多少钱
  • 视频网站用什么做的吸引流量的网站
  • 网站备案地区名交互设计师主要是做什么的呢
  • 建设网站方面的知识wordpress可以承受多大数据
  • 简单网页设计模板网站有那些网站可以做担保交易的
  • 多少钱注册的公司才能参加投标宁波正规seo快速排名公司
  • 烟台住房和城乡建设局网站学校网站首页设计图片
  • 网站推广主要怎么做食品公司网站建设
  • 建网站多少钱一个平台亚马逊网站的建设和维护
  • 站长素材音效下载手机网页设计教程
  • 网站开发的毕业周记wordpress做资源下载站
  • 免费黄页网站个体户 建设网站
  • 重庆有那些制作网站的公司东莞网站建设做网站
  • 比较好的h5网站代理网址在线
  • 第三方平台网站的建设规划河南省住房和建设厅网站
  • 零售网站模板动漫设计与制作专业的应用领域
  • 哈尔滨的网站建设公司网站网页设计公司
  • 商城网站代理系统网站自动站建
  • 网站备案需要的资料重庆网页制作
  • 自己服务器做网站服务器备案银川做企业网站
  • 免费的源代码分享有哪些网站wordpress 商城主题
  • 有企业邮箱案例的网站网站建设与维护教学视频
  • 给网站做seo的必要性wordpress 权限插件
  • 漂亮的门户网站域名查询注册信息