PenNameLuXun 2017-01-19 04:05 采纳率: 0%
浏览 2012

Qt QTreeWidget setItemWidget疑问

从QTreeWidget继承写的 CHddsTreeWidget在树上添加按钮
void CHddsTreeWidget::AddToolBtn()
{
for (int j = 0; j < topLevelItemCount(); j++)
{
QTreeWidgetItem rootitem = topLevelItem(j);
if (j == 0)
{
QTreeWidgetItem
AddImageIterm = new QTreeWidgetItem(rootitem);
CTreeToolBtn* pAddImageBtn = new CTreeToolBtn(eAddImageBtn,AddImageIterm);
SetItemIcon(AddImageIterm,0);
}
else if (1 == j)
{
int DiskNum = rootitem->childCount();
for (int i = 0; i < DiskNum;++i)
{
QTreeWidgetItem * pDisk = rootitem->child(i);
QTreeWidgetItem* pBtnItem = new QTreeWidgetItem(pDisk);
CTreeToolBtn* pBtn = new CTreeToolBtn(eAddNewPartitionBtn, pBtnItem);
SetItemIcon(pBtnItem, 1);
}
}
}
}
CTreeToolBtn是从QPushButton继承而来
CTreeToolBtn::CTreeToolBtn(EToolBtnType ToolType, QTreeWidgetItem* pSelfItem)
:m_BtnType(ToolType),m_pSelfIterm(pSelfItem)
{
Init(ToolType);
pSelfItem->treeWidget()->setItemWidget(pSelfItem, 0, this);
}
现在问题是Qt程序退出时,会崩溃,如果把CTreeToolBtn::m_pSelfIterm去掉就不会崩溃(这个成员在CTreeToolBtn中除了构造时用于setItemWidget之后都没使用),是为什么呢? 没金币 第一次问 拜托大家了,谢谢
图片说明

  • 写回答

1条回答

  • nanjun520 2017-01-20 08:34
    关注

    看你这个异常是释放的时候出的问题

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料