Я работаю с QTreeViewItem, а также QList.
В моем приложении на C ++ / Qt я создаю TreeView с несколькими элементами внутри.
При нажатии на выделенное действие я проверяю, какой элемент моего дерева выбран, и получаю имя, связанное с элементом. Это работает нормально, но перед любым действием мне нужно знать, выбрал я что-то или нет. Но нет способа проверить, равен ли результат 0 или любому другому значению.
void MainWindow::onAddFolderAction() {
uint32_t index;
uint32_t parent_id;
QList<QTreeWidgetItem*> item = MyTree->selectedItems();
if (item == 0) { // ISSUE
parent_id = 0;
} else {
QString str = item[0]->text(0);
QByteArray latin_str = str.toLatin1();
char *utf8_text = latin_str.data();
index = m_device.getIdByName(utf8_text);
// parent_id = m_device.getIdParent(index);
}
m_device.CreateNewFolder("New Folder", index);
MyTree->clear();
DisplayTree(0, 0);
}
Мне нужно убедиться, что я не управляю действием над нераспределенным или незанятым указателем элемента.
selectedItems()
Функция возвращает список элементов. Так как это QList
Вы можете просто использовать item.empty()
чтобы увидеть, если он пуст.