Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 连接()后QT程序崩溃_C++_Qt_Pointers_Singleton_Signals Slots - Fatal编程技术网

C++ 连接()后QT程序崩溃

C++ 连接()后QT程序崩溃,c++,qt,pointers,singleton,signals-slots,C++,Qt,Pointers,Singleton,Signals Slots,我正在尝试编写我的新应用程序,但每次我按下QDialog上的按钮,它都会崩溃 这是我的密码: 主窗口 #include <QMainWindow> #include "creatlist.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0);

我正在尝试编写我的新应用程序,但每次我按下QDialog上的按钮,它都会崩溃

这是我的密码:

主窗口

#include <QMainWindow>
#include "creatlist.h"

namespace Ui {
class MainWindow;

}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    QDialog* creatList;

public slots:
    void tableFull(){
      ...some code here...
     }

private:
    Ui::MainWindow *ui;
};

但是如果我尝试执行
QTextBroser.append(“色调”)在linktableFull()中,QTextBrowser始终为空。

您的
QTextBrowser
始终为空,因为您在每个
ready()
函数中创建了新的
mainwindow
对象。您应该创建一次mainwindow对象,并在整个代码中使用相同的
mainwindow
对象。您可以在
creatlist
构造函数中创建新的
mainwindow
对象

显然,
mainwindow
没有指向任何
mainwindow
的实例。学会使用调试器,您会立即找到问题的根源。您可以通过发布崩溃信息来改进问题(从终端启动程序或调试器会提供更多信息)
#include <QDialog>
#include "mainwindow.h"

namespace Ui {
class creatlist;
}

class MainWindow;

class creatlist : public QDialog
{
    Q_OBJECT

public:
    explicit creatlist(QWidget *parent = 0);
    ~creatlist();
    MainWindow* mainwindow;
signals:
    void updateList();

public slots:
    void ready(){
       ///////////////////////////////////////////////////////////crash
     connect(this,SIGNAL(updateList()),mainwindow,SLOT(tableFull()));
     emit updateList();

   }

private:
    Ui::creatlist *ui;
};
void creatlist::ready()
{
mainwindow = new MainWindow(this);
emit mainwindow->linktableFull();
}