2010-09-13 33 views
8

hi cách thêm tiện ích con bên trong tiện íchLàm thế nào để Widget bên trong một widget trong QT?

tôi đã tạo tiện ích chính và cho thanh tiêu đề tiện ích chính đến từ tiện ích con khác. đây vào mã bên dưới

main.cpp

#include <QApplication> 
#include "mainwindow.h" 

int main(int argl,char *argv[]) 
{ 
    QApplication test(argl,argv); 

    mainWindow *window=new mainWindow(); 
    window->setWindowState(Qt::WindowFullScreen); 
    window->show(); 

    return test.exec(); 
} 

mainwindow.cpp

#include "mainwindow.h" 
#include <QtGui> 
#include "headerbar.h" 
#include <QGridLayout> 

mainWindow::mainWindow(QWidget *parent) : QWidget(parent) 
{ 

    QGridLayout *layout; 
    headerBar *Header=new headerBar(this); 
    layout->addWidget(Header,0,0); 
    this->setLayout(layout); 
} 


mainWindow::~mainWindow() 
{ 

} 

headerbar.cpp

#include "headerbar.h" 

headerBar::headerBar(QWidget *parent) : QWidget(parent) 
{ 
    this->setMaximumHeight(24); 
} 

headerBar::~headerBar() 
{ 

} 

mainwindow.h

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QWidget> 

class mainWindow : public QWidget 
{ 
    Q_OBJECT 
public: 
    mainWindow(QWidget *parent = 0); 
    ~mainWindow(); 

signals: 

public slots: 

}; 

#endif // MAINWINDOW_H 

headerbar.h

#ifndef HEADERBAR_H 
#define HEADERBAR_H 

#include <QWidget> 

class headerBar : public QWidget 
{ 
    Q_OBJECT 
public: 
    headerBar(QWidget *parent = 0); 
    ~headerBar(); 

signals: 

public slots: 

}; 

#endif // HEADERBAR_H 

trong khi biên dịch mã này không có lỗi. nhưng khi tôi đang cố gắng để chạy nó thông qua lỗi "thoát với mã -1073741819"

hãy giúp tôi khắc phục vấn đề này

Trả lời

6

Trong khi bạn sử dụng layout, bạn chưa bao giờ tạo ra và gán một ví dụ với nó:

QGridLayout *layout; // no initialization here 
headerBar *Header = new headerBar(this); 
layout->addWidget(Header,0,0); // layout is uninitialized and probably garbage 

Bạn nên tạo ra nó đầu tiên trước khi sử dụng nó:

QGridLayout *layout = new QGridLayout(this); 
+0

vâng. nó hoạt động. cảm ơn – saravanan

Các vấn đề liên quan