C++ Qt-如何从QListWidget获取选定的自定义项?
我创建了从C++ Qt-如何从QListWidget获取选定的自定义项?,c++,qt,qt-creator,C++,Qt,Qt Creator,我创建了从QListWidget派生的类OptionList,以及从QListWidgetItem派生的类ListItem 在类OptionList中,我尝试使用QList items=selectedItems()从列表中获取所选项目,但它显示以下错误: 请求从QList到非标量类型QList的转换 我知道selectedItems()函数返回QListWidgetItem的列表,有没有办法将此函数与我从QListWidgetItem派生的ListItem类一起使用 正确的方法是使用QList
QListWidget
派生的类OptionList
,以及从QListWidgetItem
派生的类ListItem
在类OptionList
中,我尝试使用QList items=selectedItems()
从列表中获取所选项目,但它显示以下错误:
请求从QList到非标量类型QList的转换
我知道
selectedItems()
函数返回QListWidgetItem
的列表,有没有办法将此函数与我从QListWidgetItem
派生的ListItem
类一起使用 正确的方法是使用QList
获取selectedItems()
的结果,并在需要从列表中获取项目时使用ListItem*myItem=static_cast(项目)
但是,由于该列表仅包含指针,因此可以安全地执行以下操作:
QList<ListItem *> items = *reinterpret_cast<QList<ListItem *>*>(&selectedItems());
QList items=*重新解释强制转换(&selectedItems());
迭代列表时,只需对派生类型执行适当的转换(例如:静态转换(item)
)。如果需要派生类指针的实际列表,则需要构建一个新的列表(迭代基类列表并将这些项添加到派生类列表中)QList结果代码>用于(QListWidgetItem*it:selectedItems()){results