gpt4 book ai didi

c++ - Qt 4.6 - C++ - QTreeWidgetItem 迭代器

转载 作者:行者123 更新时间:2023-11-30 03:11:45 25 4
gpt4 key购买 nike

我有一个包含项目的 QTreeWidget。第一列包含唯一编号。这是通过 item->setData(0, 0, unique_number); 设置的。第二列包含一个复选框,通过 item->setCheckState(1, Qt::Unchecked); 设置。用户可以选择他想要使用的项目并按下按钮。此按钮的插槽将在选中的项目上运行循环。在 Qt 文档中给出了一个示例。您使用 QTreeWidgetItemIterator。

QTreeWidgetItemIterator it(treeWidget);
while (*it) {
if ((*it)->text(0) == itemText)
(*it)->setSelected(true);
++it;
}

它还说你可以在构造函数中指定一个参数来只迭代选中的项目。标志是:QTreeWidgetItemIterator::Checked。我稍微自定义的循环如下:

QTreeWidgetItemIterator it(treeWidget, QTreeWidgetItemIterator::Checked);

while (*it)
{
QVariant w;
w = (*it)->data(0, 0);
std::cout << "Selected item # " << w.toInt() << "\n";
it++;

}

此代码可以正常编译,但在您实际运行该程序时将无法正常工作。它不打印任何值。

有什么建议吗?谢谢!

最佳答案

Qt 文档中缺少的一个警告是 QTreeWidgetItemIterator::Checked 标志仅测试每个 QTreeWidgetItem 中第 0 列的检查状态。将第 0 列用作复选框,将第 1 列用作唯一编号应该会导致循环打印值。

关于c++ - Qt 4.6 - C++ - QTreeWidgetItem 迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2044141/

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