如何删除小部件

How to delete a widget

实际上我有 2 个 Qwidgets 说 "Widget","NewWidget"。我在 "Widget" 按键事件中调用 "NewWidget",反之亦然,

void Widget::keyPressEvent(QKeyEvent *qv)
{
  // i want to delete "Widget" here before i call "NewWidget"
   NewWidget *newWidget = new NewWidget();
   newWidget->setStyleSheet("background-color:black;");
   newWidget->setGeometry(0,0,640,480);    
   newWidget->show();
}

我想在调用 "NewWidget"

之前删除或销毁 "Widget"

尝试以下方法

this->deleteLater();

它会在函数退出时尝试销毁小部件。

听起来dangerous/bad当您忙于要销毁的小部件的成员函数时销毁当前小部件。尝试上面的代码,否则请考虑重新设计您的交互。