使用pushButton c ++ QT连接表单

时间:2017-04-28 06:10:23

标签: c++ forms qt qpushbutton

我正在创建一个程序,需要打开一个表单,然后单击按钮关闭之前的表单。我目前的问题是,当我单击按钮时,新窗体显示一毫秒然后消失。

void mainMenu::on_mainLoginB_clicked()
{
     logIn objlogIn;
     objlogIn.show();
}

void mainMenu::on_mainExitB_clicked()
 {
     exit(1);
 }

这是我的头文件

private slots:
    void on_mainLoginB_clicked();

    void on_mainExitB_clicked();

private:
    Ui::mainMenu *ui;


};

1 个答案:

答案 0 :(得分:3)

objLogIn在SLOT的范围内声明,因此,在函数返回时删除。

请记住,QT与大多数用户界面一样使用事件(消息)循环,因此像show()这样的函数不会阻塞:它们会立即返回,而事件循环则是进一步管理它。

解决此问题:

  • 在更高的范围内创建对象,并在需要时显示/隐藏它。
  • 在堆中动态创建对象。