c++ - QListView 中的独占复选框

标签 c++ qt qlistview

我正在尝试将独占复选框作为 QListView 项目。我使用 QStandardItemModel 作为带有 QStandardItem 的模型。

我正在向列表中动态添加项目并将其设置为可检查:

QStandardItem *item = new QStandardItem(treeView->model()->data(index).toString());
item->setCheckable(true);
m_categoriesModel->appendRow(item);

我尝试将所有项目连接到 QSignalMapperQStandardItem 没有 checked(bool) 信号(基本上没有) .

有什么办法可以解决这个问题吗?

最佳答案

您始终可以按照下面描述的方式进行制作。首先将 ListView 的点击信号连接到将处理您的项目点击的插槽。其次,在插槽内,您可以从 QModelIndex 获取项目并检查项目的状态。下面是伪代码:

例如,在ListView的构造函数中:

  connect(this, SIGNAL(clicked(QModelIndex)), this, SLOT(_handleItemClicked(QModelIndex)));

ListView 的插槽:

void ListView::_handleItemClicked(QModelIndex index)
{
        QStandardItem* item = _model->itemFromIndex(index);

        if( item->checkState() == Qt::Checked) qDebug() << "Checked!";
}

关于c++ - QListView 中的独占复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33874854/

相关文章:

javascript - 在 JS 中使用 LocalStorage

qt - 如何在 QListView 中选择一行

python - PYQT4, ListView : How to get selected rows using QStandardItemModel

c++ - 如何从 EnterpriseAddOns 获取 Qt Enterprise Add-ons 或 Qt 模块?

c++ - MinGW SEH 和 MinGW SJLJ 有什么区别?

c++ - 在 C/C++ 中使用字符执行算术运算

c++ - 将比较运算符与宏结合使用时出错

python - 使用 QToolBar 和 QListView 进行面包屑导航

c++ - 如何转换格式化字符串 HH :MM:SS to seconds in C++

c++ - 求一系列数字加减后的最小值和最大值