gpt4 book ai didi

c++ - QTableView 中标题单元格中的复选框

转载 作者:可可西里 更新时间:2023-11-01 17:36:59 25 4
gpt4 key购买 nike

我想要一个简单的列标题,其中带有一个复选框,用于选择/取消选择 QTableView 中的所有行。单击标题中的复选框会导致选择或取消选择所有行。

enter image description here

当我想在表格单元格中添加一个复选框时,我必须只返回数据(..)中 Qt::CheckStateRole 的检查状态以获得所需的模型索引,如下所示。这按预期工作。

QVariant MyModel::data( const QModelIndex & rIndex, int iRole) const
{
...

if (iRole == Qt::Qt::CheckStateRole)
{
return checkstate;
}

}

但是当我想在标题单元格中添加一个复选框时,上述方法不起作用。听到是我的示例代码。

QVariant MyModel::headerData( int iSection, Qt::Orientation eOrientation, int iRole) const
{
...

if (iRole == Qt::CheckStateRole)
{
return checkstate;
}

}

在我的模型中,QTableView 不使用 Qt::CheckStateRole 调用 headerData() 函数,就像它调用 data() 函数一样。

为什么会出现这种行为?如何仅通过修改自定义表格模型在标题单元格中插入复选框?

(我不想为此创建自定义 QTableView 或 QHeaderView)

最佳答案

你不能这样做 - 默认情况下,Qt 不支持标题中的复选框。你可以阅读https://wiki.qt.io/Qt_project_org_faq#How_can_I_insert_a_checkbox_into_the_header_of_my_view.3F了解更多信息及其使用自定义 QHeaderView

的实现

关于c++ - QTableView 中标题单元格中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21557913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com