qt - 在QT中设置新公共(public)信号后出现段故障

标签 qt qt4 signals signals-slots slot

我刚刚接触 Qt,我试图从 QlineEdit 中拉出字符串,并在单击按钮后将其附加到 QTextBrowser(为了简单/错误检查,我只是让它附加附加在时刻)。

程序运行,GUI 出现在屏幕上,但每当我单击按钮时,我的程序段就会出错。

这是我的代码,我删除了很多不必要的内容:

标题:

#ifndef TCD2_GUI_H
#define TCD2_GUI_H
//bunch of includes

class TCD2_GUI : public QWidget
{
    Q_OBJECT

public:
     TCD2_GUI(QWidget *window = 0);
     //bunch of other members
     QLineEdit *a1_1;
     QTextBrowser *stdoutput;

public slots:
     void applySettings(void);

private:

};
#endif // TCD2_GUI_H

这是导致错误的 cpp 片段

 QTextBrowser *stdoutput = new QTextBrowser();

    stdoutput->append("Welcome!");

    QObject::connect(apply, SIGNAL(clicked()), this, SLOT(applySettings()));

    //------------------------------------------------------Standard Output END
    //layout things

}

void TCD2_GUI::applySettings()
{
    stdoutput->append("appended");
}

最佳答案

applySettings() 函数中的

stdoutput 引用 TCD2_GUI 类的成员,而发生崩溃的代码段中的 stdoutput是一个局部变量。 尝试通过示例添加到构造函数中:

stdoutput = new QTextBrowser();

并从您的代码中删除以下行:

QTextBrowser stdoutput = new QTextBrowser();

关于qt - 在QT中设置新公共(public)信号后出现段故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4916741/

相关文章:

qt - 如何制作小部件的 QVector?

c++ - 在命名空间中使用枚举

c++ - Qt 按钮处理建议

numpy - FFT 卷积如何以及为什么比直接卷积更快?

linux - 父子之间的信号和 C 中的 fork

c++ - MySQL 与 Qt 问题

android - QSql数据库 : Driver not loaded Driver not loaded

c++ - QT GroupBox 样式表

c++ - QDir::entryInfoList 意外行为

c - 如果执行任务失败,如何向多个子进程发送终止信号?