啦小啦 发表于 2015-7-3 14:16:34

关于窗口闪退的解决

例如:
         void MainWindow::slot()
         {
                  QDialog dlg ;
                  dlg.show();
         }


运行后发现窗口一闪而过,这是因为dlg的后面的大括号,dlg超出了作用域而
被析构掉,所以窗口不见了,解决方法:

1. 将dlg作为类的成员,而不是在函数内部。
2. 在dlg前面添加static,作为静态成员。
3.将dlg用 new 分配到 heap 中。

个人推荐第一种。


Joey_Chan 发表于 2015-7-3 15:39:33

我也推荐第一种

啦小啦 发表于 2015-7-3 16:10:57

你好,看到您回复,想问一下,如何在QT中是实现两个类的相互引用,在类A总点击按钮进入B,然后在B中点击按钮返回A,我在实现的时候,遇到了困难。能帮着解答一下吗?

who_am_i_2015 发表于 2016-1-20 09:48:11

啦小啦 发表于 2015-7-3 16:10 static/image/common/back.gif
你好,看到您回复,想问一下,如何在QT中是实现两个类的相互引用,在类A总点击按钮进入B,然后在B中点击按 ...

signals:
connect。。。。。。

who_am_i_2015 发表于 2016-1-20 12:51:33

#include <iostream>

using namespace std;

template < class A >
class B
{
public:
typedef void* void_pointer;
typename A::int_pointer p;//用到A中的定义
int j;
};

class A
{
public:
typedef int* int_pointer;
B<A>::void_pointer p;//用到B中的定义
int i;
};

int main()
{

return 0;
}

模板!

poyema290 发表于 2016-3-21 07:38:02

大家看怎么样 我认为很好.
页: [1]
查看完整版本: 关于窗口闪退的解决