У меня есть QTreeWidget с элементами в нем. Первый столбец содержит уникальный номер. Это устанавливается через item-> setData (0, 0, unique_number) ;. Второй столбец содержит флажок, установленный через item-> setCheckState (1, Qt :: Unchecked) ;. Пользователь может выбрать элементы (ы), с которыми он хотел бы работать, и нажимать кнопку. Слот для этой кнопки будет запускать цикл для отмеченных элементов. В документации Qt приведен пример. Вы используете QTreeWidgetItemIterator.Qt 4.6 - C++ - Итератор QTreeWidgetItem
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++;
}
Этот код будет компилироваться в порядке, но не будет работать, когда вы фактически запустите программу. Он не печатает никаких значений.
Любые советы? Благодаря!