读Qt示例之addressbook(一)
来源:互联网 发布:如何看端口通不通 编辑:程序博客网 时间:2024/06/07 20:41
读Qt示例之addressbook(一)
这里看的示例是QT5.6.2的
addressbook 是将联系人按英文字母顺序,3个字母一组显示联系人及其地址的一个示例。
address book 包含5个类: MainWindow, AddressWidget, TableModel, NewAddressTab and AddDialog. MainWindow class u使用 AddressWidget 作为它的中心部件并且提供文件和工具菜单
这一篇主要讲讲代理模型QSortFilterProxyModel,
QSortFilterProxyModel就是插入在model与view之间,起到对模型中的数据进行排序或者过滤,然后提供给视图进行显示的作用。
AddressWidget中有这样个函数
void AddressWidget::setupTabs(){ QStringList groups; groups << "ABC" << "DEF" << "GHI" << "JKL" << "MNO" << "PQR" << "STU" << "VW" << "XYZ"; for (int i = 0; i < groups.size(); ++i) { QString str = groups.at(i); QString regExp = QString("^[%1].*").arg(str);//这里是匹配以str中存储的三个字母中任意一个开头的字符串,如果没有这个规则,则ABC里也会显示以X开头的 proxyModel = new QSortFilterProxyModel(this); proxyModel->setSourceModel(table);//插入 proxyModel->setFilterRegExp(QRegExp(regExp, Qt::CaseInsensitive));//设置过滤规则并大小写敏感 proxyModel->setFilterKeyColumn(0);//以第0列过滤 QTableView *tableView = new QTableView; tableView->setModel(proxyModel);//插入 tableView->setSelectionBehavior(QAbstractItemView::SelectRows); tableView->horizontalHeader()->setStretchLastSection(true); tableView->verticalHeader()->hide(); tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); tableView->setSelectionMode(QAbstractItemView::SingleSelection); tableView->setSortingEnabled(true); connect(tableView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &AddressWidget::selectionChanged); addTab(tableView, str); }}
阅读全文
0 0
- 读Qt示例之addressbook(一)
- Qt例子一 AddressBook测试学习
- QT(5)Dialog - Addressbook例子3
- 读Qt示例之Modbus Master example(一)
- QT(3)对象和继承-Addressbook例子1
- QT(4)信号、SLOT和QMap - Addressbook例子2
- AddressBook
- AddressBook
- AddressBook
- AddressBook
- Qt之QtScript(一)
- Qt之QtScript(一)
- Qt之QtScript(一)
- Qt之文本编辑(一)
- Qt之 多线程(一)
- qt之tcp(一)
- opencv的相关类及示例分析(一)之在QT中利用opencv用摄像头采集图像
- QT-Mobility示例之摄像
- 前端布局引擎bshow
- [bzoj3790]神奇项链 manacher
- JVM 运行时数据区域
- getBytes等空指针异常
- 动态规划
- 读Qt示例之addressbook(一)
- CSS:标准文档流、浮动、绝对定位—(解决有时候父元素不能自动扩展)
- 邮票问题
- socket通信常用函数
- 欢迎使用CSDN-markdown编辑器
- Golang并发编程——安全传输引用和指针的方法
- 优先队列
- 实现图像的边沿检测算法设计
- LeetCode OJ 21 Merge Two Sorted Lists [Easy]