首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QT程序在connect()之后崩溃

QT程序在connect()之后崩溃
EN

Stack Overflow用户
提问于 2015-03-14 20:13:19
回答 1查看 984关注 0票数 1

我正在试着写我的新应用,但每次我在QDialog上按一个按钮,它就会崩溃。

下面是我的代码:

mainwindow.h

代码语言:javascript
复制
#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;
};

creatlist.h:

代码语言:javascript
复制
#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;
};

如果我试图发送一些信号,我的应用程序会崩溃,并出现分段故障。

我做到了:

代码语言:javascript
复制
void creatlist::ready()
{
mainwindow = new MainWindow(this);
emit mainwindow->linktableFull();
}

但是如果我尝试在linktableFull()中执行QTextBroser.append("hue hue");,QTextBrowser总是空的。

EN

回答 1

Stack Overflow用户

发布于 2015-04-21 18:08:42

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29048780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档