通过按下控制台窗口上的按钮删除创建的进度条

发布于 2025-01-23 10:03:35 字数 1120 浏览 2 评论 0原文

我试图学习自己使用QT,所以仍在挣扎很多...如何通过按删除按钮来删除弹跳对象?我正在努力实施删除功能...

MainWindow::MainWindow(QWidget * parent): QMainWindow(parent) {

  setFixedSize(800, 600);
  int start;

  timer  = new QTimer(this);
  connect(timer , SIGNAL(timeout()), this, SLOT(step()));

  timer  -> setInterval(5);
  timer  -> start();

  QPushButton * sillyLabel  = new QPushButton(this);
  connect(sillyLabel , SIGNAL(clicked()), this, SLOT(doSomethingSilly()));

  sillyLabel  -> setText("Spawn Object");
  sillyLabel  -> setGeometry(400, 400, 200, 50);


  QPushButton * dLabel  = new QPushButton(this);
  connect(dLabel , SIGNAL(clicked()), this, SLOT(deleteSomethingSilly()));

  dLabel  -> setText("Delete Object");
  dLabel  -> setGeometry(200, 200, 200, 50);

MainWindow::~MainWindow() {

}

void MainWindow::doSomethingSilly() {
  QProgressBar * sillyobject = new QProgressBar(this);

  sillyobject -> setGeometry(400, 300, 80, 50);
  sillyobject -> show();
  sillyobject -> setValue(100);

  bouncyobject.push_back(sillyobject);

}

void MainWindow::deleteSomethingSilly() {


delete ?;

}

I am trying to learn myself use Qt so still struggling a lot... How would I go about deleting my bouncing object by pressing the delete button? I am struggling to implement the delete function...

MainWindow::MainWindow(QWidget * parent): QMainWindow(parent) {

  setFixedSize(800, 600);
  int start;

  timer  = new QTimer(this);
  connect(timer , SIGNAL(timeout()), this, SLOT(step()));

  timer  -> setInterval(5);
  timer  -> start();

  QPushButton * sillyLabel  = new QPushButton(this);
  connect(sillyLabel , SIGNAL(clicked()), this, SLOT(doSomethingSilly()));

  sillyLabel  -> setText("Spawn Object");
  sillyLabel  -> setGeometry(400, 400, 200, 50);


  QPushButton * dLabel  = new QPushButton(this);
  connect(dLabel , SIGNAL(clicked()), this, SLOT(deleteSomethingSilly()));

  dLabel  -> setText("Delete Object");
  dLabel  -> setGeometry(200, 200, 200, 50);

MainWindow::~MainWindow() {

}

void MainWindow::doSomethingSilly() {
  QProgressBar * sillyobject = new QProgressBar(this);

  sillyobject -> setGeometry(400, 300, 80, 50);
  sillyobject -> show();
  sillyobject -> setValue(100);

  bouncyobject.push_back(sillyobject);

}

void MainWindow::deleteSomethingSilly() {


delete ?;

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟火散人牵绊 2025-01-30 10:03:35

您必须将sillyobject在类标题内声明为私人指针(要在所有类成员内部访问),那么您只需删除指针以:

 delete sillyobject;

在您的标题文件中:

 (...)
 private :
 QProgressBar * sillyobject 
 (...)

然后

void MainWindow::doSomethingSilly() {
   sillyobject = new QProgressBar(this);

  sillyobject -> setGeometry(400, 300, 80, 50);
  sillyobject -> show();
  sillyobject -> setValue(100);

  bouncyobject.push_back(sillyobject);

}

:然后:

void MainWindow::deleteSomethingSilly() {


delete sillyobject;

}

You have to declare sillyobject inside the class header as a private pointer (to have access inside all the class members), then you just have to delete the pointer with :

 delete sillyobject;

In your header file :

 (...)
 private :
 QProgressBar * sillyobject 
 (...)

then

void MainWindow::doSomethingSilly() {
   sillyobject = new QProgressBar(this);

  sillyobject -> setGeometry(400, 300, 80, 50);
  sillyobject -> show();
  sillyobject -> setValue(100);

  bouncyobject.push_back(sillyobject);

}

and :

void MainWindow::deleteSomethingSilly() {


delete sillyobject;

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文