Qt之QListView和QStandardItemModel用法
2024-09-01 19:27:21
note
- 个人理解, QListView 用于 显示数据,而数据的逻辑维护则由 QStandardItemModel 完成.
QStandardItemModel 创建
if (nullptr == pchannel_list_view_model_)
pchannel_list_view_model_ = new(std::nothrow) QStandardItemModel(ui->channel_list_view);
QListView添加QStandardItemModel
- 绑定数据源
/// 绑定数据源
ui->channel_list_view->setModel(pchannel_list_view_model_);
QListView设置为不可编辑
/// 设置为不可编辑
ui->channel_list_view->setEditTriggers(QAbstractItemView::NoEditTriggers);
添加行
standard_item_ex* item1 = new(std::nothrow) standard_item_ex(tr("new_channel"));
pchannel_list_view_model_->appendRow(item1);
note
- standard_item_ex 的原型如下, 我对其做了扩展
class standard_item_ex : public QStandardItem
{
public:
explicit standard_item_ex(const QString& str_txt);
standard_item_ex(const QIcon &icon, const QString &text);
~standard_item_ex();
....
}
QListView 显示添加数据
ui->channel_list_view->update();
QListView滚动的最下面
ui->channel_list_view->scrollToBottom();
QListView获取选中的行
QItemSelectionModel *selmodel = ui->channel_list_view->selectionModel();
if (selmodel)
{
/// 解析: indexlist 即可
QModelIndexList indexlist = selmodel->selectedIndexes();
}
获取选择的行和列
- 这里演示了 绑定的doublelciked的信号 和 下文的槽函数
void channel_widget::slot_list_view_item_double_clicked_(const QModelIndex & model_index)
{
/// 得到行列索引
int row_index = model_index.row();
int column_index = model_index.column();
}
根据行和列获取item
const int channel_row_index = 0;
const int column_index = 0;
QModelIndex& model_index = pchannel_list_view_model_->index(channel_row_index, column_index);
pchannel_list_view_model_->setData(model_index, str_new_name);
最新文章
- JS开发windows phone8.1系列之1
- akka笔记
- Weblogic Session复制策略与方式
- springMVC基础
- GET和POST的主要区别
- JAVA数组的定义及用法
- 在vs环境中跑动sift特征提取(原理部分)
- ASP.NET使用Jquery-Ajax向ashx传递参数中文出现乱码
- MySQL--连接属性
- 用 PS 调整服务器时间
- Android bluetooth介绍(四): a2dp connect流程分析
- 经常使用的正則表達式归纳—JavaScript正則表達式
- IOS开发-UI学习-UITextField的具体属性及用法
- 16.1 解决SecureCRT的Home+End+Del不好用使用方法
- tomcat是怎么找到项目lib目录下的jar包的,求大神解答
- 优雅的重载toString方法,打印对象内容而不是打印内存地址的方法
- leecode第四十三题(字符串相乘)
- 【问题】C4D中设置了界面颜色,如何恢复默认?
- 如何使用FF的Firebug组件中的net工具查看页面元素加载消耗时间
- bootstrap插件的一些常用属性介绍
热门文章
- Oracle-oracle中union和union all的区别
- STM32 BootLoader升级固件
- Linux驱动实践:如何编写【 GPIO 】设备的驱动程序?
- 学习java 7.24
- 并发 并行 进程 线程 协程 异步I/O python async
- 【leetcode】451. Sort Characters By Frequency
- 【STM32】基于正点原子『探索者』开发板的烧录
- xtrabackup原理
- Cocoapods 版本更新与更新到指定版本
- delete() and free() in C++