如何深入掌握Qt表格的入门技巧?
摘要:这篇博客文章深入探讨了Qt表格处理的基础知识与实践技巧。主要内容包括:使用QTableWidget和QTableView展示数据,通过QStyledItemDelegate和QSortFilterProxyModel实现数据代理、过滤与排序
摘要:
表格作为数据展示的界面,会在很多场景下使用。Qt为我们提供了使用简单方便和扩展性强的表格视图,这里做一个简单的入门整理。
个人能力有限,有错误欢迎留言指正,如果你有更好的方法,也欢迎分享讨论。
关键词:
Qt、表格、过滤、筛选、自定义单元格、排序、委托、代理
主要类:
QTableWidget、QTableView、QStandardItemModel、QStyledItemDelegate、QSortFilterProxyModel
⚠️更新提示:
该实现在大数据量下会出现性能瓶颈,导致界面渲染卡顿。已在后续文章中提供优化方案,建议在阅读完本篇后继续查看Qt表格入门(优化篇)。
〇、准备数据
Qt 5.14.2
数据类
// 学生类
class Student
{
public:
Student(const QString &id, const QString &name, int age, int score, int sex);
~Student();
QString mId; // 学号
QString mName; // 名字
int mAge; // 年龄
int mScore; // 分数
int mSex; // 性别
};
// 初始化数据
void MainWindow::initStudent()
{
// QStringList mHeader;
mHeader << "学号" << "姓名" << "年龄" << "分数" << "性别";
// QList<Student *> mStudents;
mStudents << new Student("501", "小明", 20, 85, 0)
<< new Student("402", "小红", 29, 19, 1)
<< new Student("311", "小刚", 25, 79, 1)
<< new Student("813", "小李", 27, 33, 1)
<< new Student("514", "小赵", 23, 21, 0)
<< new Student("425", "小王", 24, 50, 0)
<< new Student("326", "小张", 26, 44, 1)
<< new Student("28", "小淘", 28, 93, 1)
<< new Student("30", "小杨", 21, 77, 1);
}
在这段代码中,
定义学生类,学生类主要包括学生的学号、姓名、年龄、分数、性别;
定义了表格的表头;
同时创建了几个学生,并将学生存储到QList里。
