Qt - 如何从 QListWidget 中获取选定的自定义项?

Qt - How to get selected custom items from a QListWidget?

我创建了从 QListWidget 派生的 class OptionList 和从 QListWidgetItem

派生的 class ListItem

在 class OptionList 我尝试使用 QList<ListItem *> items = selectedItems(); 从列表中获取选定的项目,但它显示以下错误:

conversion from QList<QListWidgetItem *> to non-scalar type QList<ListItem *> requested

我知道 selectedItems() 函数 returns QListWidgetItem 的列表,有没有办法将此函数与 ListItem class 一起使用,我从 QListWidgetItem 派生的?

正确的方法是使用 QList<QListWidgetItem *> 获取 selectedItems() 的结果,当您需要从列表中获取项目时使用 ListItem *myItem = static_cast<ListItem *>(item)

但是,因为列表只是指针,所以这样做是安全的:

QList<ListItem *> items = *reinterpret_cast<QList<ListItem *>*>(&selectedItems());