当前位置:编程学习 > wap >>

求各位大侠相助!!!

大侠们好!小弟是个初学者,刚学,想弄个对话框里包含一个Label和一个line edit,结果程序调试后却出现了个提醒说:底层由于接收到操作系统的信号而停止。信号名称是SIGSEGV。信号意义是segmentation fault。下面是我的程序:
#ifndef TESTDIALOG_H
 #define TESTDIALOG_H
 
 #include <QtGui/QDialog>
 #include <QLabel>
 #include <QLineEdit>
 #include <QLayout>
 
 class testdialog : public QDialog
 {
     Q_OBJECT
     
 public:
     testdialog(QWidget *parent = 0);
     ~testdialog();
 public:
     QLabel *label;
     QLineEdit *lineEdit;
     QLayout *layout;
 };
 
 #endif // TESTDIALOG_H
//以上是头文件。



#include "testdialog.h"
 #include <QObject>
 
 testdialog::testdialog(QWidget *parent)
     : QDialog(parent)
 {
     setWindowTitle("My Dialog");
     label->setTextFormat(Qt::PlainText);
     label->setText("&What");
     label->setBuddy(lineEdit);
     layout->addWidget(label);
     layout->addWidget(lineEdit);
     setLayout(layout);
 
 
 }
 
 testdialog::~testdialog()
 {
 }
//以上是实现文件。



#include <QtGui/QApplication>
 #include "testdialog.h"
 
 int main(int argc, char *argv[])
 {
     QApplication a(argc, argv);
     testdialog w;
     w.show();
     
     return a.exec();
 }
 //应用程序。

求各位大侠指点!!!万分感谢!!! --------------------编程问答-------------------- 你定义的控件指针都没有new啊,
空指针你去操作当然会报错的

label = new QLabel();
lineEdit = new QLineEdit(); --------------------编程问答-------------------- label = new QLabel(this);
lineEdit = new QLineEdit(this);
补充:移动开发 ,  Qt
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,