QTablewidget中的Pushbutton如何释放内存

wxf54318 2020-01-08 11:27:25
QTablewidget添加了Pushbutton,当删除pushbuton所在的行时,如何释放pushbuton的内存

上代码:
QPushButton * pBtn = new QPushButton ("delete");
connect(pBtn, SIGNAL(clicked()), this, SLOT(OnBtnTableDeleteClicked()));
(ui.tableWidget)->setCellWidget(row,4,pBtn);
...全文
229 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

QTest3::QTest3(QWidget *parent) : QWidget(parent)
{
    this->resize(240,320);
    tbw = new QTableWidget(this);
    tbw->setGeometry(this->rect());
    tbw->setColumnCount(1);
    tbw->setRowCount(1);
    QPushButton *testPb = new QPushButton;
    testPb->setText("test");
    tbw->setCellWidget(0,0,(QWidget*)testPb);

    pbPointer = (QWidget*)testPb;

    pbCheck = new QPushButton(this);
    pbCheck->setGeometry(this->width() - 30, this->height() - 30, 30, 30);
    pbCheck->setText("CK");
    connect(pbCheck, SIGNAL(clicked(bool)), this, SLOT(check()));

    pbDelete = new QPushButton(this);
    pbDelete->setGeometry(this->width() - 60, this->height() - 30, 30, 30);
    pbDelete->setText("DE");
    connect(pbDelete, SIGNAL(clicked(bool)), this, SLOT(deletePb()));
}

void QTest3::check()
{
    qDebug()<<pbPointer;
}

void QTest3::deletePb()
{
    qDebug()<<"delete row";
    tbw->removeRow(0);
}
Qt的类,父销毁子也会。
Italink 2020-01-08
  • 打赏
  • 举报
回复
首先需要在父布局中去除这个控件,再调用控件的setParent,置为nullptr,然后再用delete就行了
Italink 2020-01-08
  • 打赏
  • 举报
回复
引用 2 楼 wxf54318的回复:
[quote=引用 1 楼 Italink 的回复:] 首先需要在父布局中去除这个控件,再调用控件的setParent,置为nullptr,然后再用delete就行了
是先setParent(nullptr) delete pbtn; 最后(ui.tableWidget)->removerow吗? [/quote] 先remove,然后setParent,再delete
Italink 2020-01-08
  • 打赏
  • 举报
回复
引用 2 楼 wxf54318的回复:
[quote=引用 1 楼 Italink 的回复:] 首先需要在父布局中去除这个控件,再调用控件的setParent,置为nullptr,然后再用delete就行了
是先setParent(nullptr) delete pbtn; 最后(ui.tableWidget)->removerow吗? [/quote] 先remove,然后setParent,再delete
wxf54318 2020-01-08
  • 打赏
  • 举报
回复
引用 1 楼 Italink 的回复:
首先需要在父布局中去除这个控件,再调用控件的setParent,置为nullptr,然后再用delete就行了
是先setParent(nullptr) delete pbtn; 最后(ui.tableWidget)->removerow吗?

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧