编译成功,但是当我运行它时,终端给了我一个“分段错误(内核已转储)”消息。我使用的编译器是Ubuntu上的g++。
代码是:
#include <QApplication>
#include <QLabel>
#include <QLineEdit>
#include <QVBoxLayout>
#include <QWidget>
int main(int argc, char** argv){
QApplication app(argc, argv);
QWidget window;
QLabel *label = new QLabel;
QLineEdit *edit = new QLineEdit;
QObject::connect(edit, SIGNAL(textChanged(const QString&)), label, SLOT(setText(const QString&)));
QVBoxLayout *layout;
layout->addWidget(edit);
layout->addWidget(label);
window.setLayout(layout);
window.show();
return app.exec();
}
最佳答案
QVBoxLayout *layout
未初始化,您使用的是未初始化的指针。
正确方法:
QVBoxLayout *layout = new QVBoxLayout;
// use layout..
http://qt-project.org/doc/qt-4.8/qvboxlayout.html
关于c++ - 一个简单的qt程序未运行,并显示错误消息 “segmentation fault”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22949481/