(转)QT登录窗口调用主窗口一闪而过问题

原代码:
 //如果登录成功
  {
   index mainForm;
   mainForm.show();
   this->hide();
  }
主窗口一闪而过
 
修改为:
 //如果登录成功
  {
   index mainForm =  new inde();
   mainForm.show();
   this->hide();
  }
程序报错
 
修改为:
//如果登录成功
  {
   index *mainForm;
   mainForm = new index();
   mainForm->show();
   this->hide();
  }
成功显示主窗口。
 
总结:
   index mainForm;
   mainForm.show();
mainForm创建在stack上,生命期是大括号内
 
   index *mainForm;
   mainForm = new index();
mainForm 通过new创建在heap上, 在程序退出时才会被析构
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Qt中,窗口调用窗口函数可以通过信号与槽机制来实现。 首先,在子窗口类中定义一个需要被窗口调用的函数。例如,子窗口类为ChildWindow,函数为childFunction()。 子窗口头文件ChildWindow.h中添加以下代码: ```cpp signals: void callChildFunction(); public slots: void childFunction(); ``` 接下来,在窗口类中,需要实例化子窗口的对象,并连接子窗口的信号和窗口的槽函数。 窗口头文件MainWindow.h中添加以下代码: ```cpp private slots: void onCallChildFunction(); ``` 窗口源文件MainWindow.cpp中添加以下代码: ```cpp void MainWindow::onCallChildFunction() { childWindow->childFunction(); } ``` 最后,在窗口类的构造函数中,进行子窗口对象的创建,并连接信号与槽函数。 窗口源文件MainWindow.cpp中添加以下代码: ```cpp MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { // 其他代码... childWindow = new ChildWindow(this); connect(this, &MainWindow::callChildFunction, childWindow, &ChildWindow::childFunction); } ``` 这样,当窗口需要调用窗口的函数时,只需要在窗口的槽函数onCallChildFunction()中发射信号emit callChildFunction()即可。 总结起来,窗口调用窗口函数的步骤如下: 1. 在子窗口类中定义需要被调用的函数。 2. 在窗口类中创建子窗口对象,并连接信号与槽函数。 3. 在窗口类的槽函数中发射子窗口的信号。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值