PDA

View Full Version : Unhandled exception at 0x671b13c2 (QtCored4.dll), Breaking there



snowsoman
11th October 2011, 05:02
I am trying to include a widget i created in another file in my main window file. I get no compile or link errors ,but it will end up breaking on this line in my qobject.h file. I think maybe i am not declaring something right ,but i really have no idea. Any help that can be provided is welcome


inline QObject *parent() const { return d_ptr->parent; }

iconArea.h



#ifndef ICONAREA_H
#define ICONAREA_H

#include <QtGui/QMainWindow>
#include <QWidget>

class iconArea : public QWidget
{
Q_OBJECT

public:
iconArea(QWidget *parent =0);
void setIcon(const QIcon &icon);
void setSize(const QSize &size);
private:
QIcon icon;
QSize size;
void createIcons();

};

#endif // ICONAREA_H


iconarea.cpp


#include "iconarea.h"

#include <QLayout>
#include <QPushButton>

iconArea::iconArea(QWidget *parent)
: QWidget(parent)
{
QGridLayout *mainLayout = new QGridLayout;
setLayout(mainLayout);

QPushButton *button1 = new QPushButton;
button1->setIcon(QIcon("light.png"));
button1->setIconSize(QSize(80,80));

QPushButton *button2 = new QPushButton;
button2->setIcon(QIcon("cloud.png"));
button2->setIconSize(QSize(80,80));

QPushButton *button3 = new QPushButton;
button3->setIcon(QIcon("Control.gif"));
button3->setIconSize(QSize(80,80));

QPushButton *button4 = new QPushButton;
button4->setIcon(QIcon("images.jpg"));
button4->setIconSize(QSize(80,80));

QPushButton *button5 = new QPushButton;
button5->setIcon(QIcon("upgrade.png"));
button5->setIconSize(QSize(80,80));

QPushButton *button6 = new QPushButton;
button6->setIcon(QIcon("power.gif"));
button6->setIconSize(QSize(80,80));

mainLayout->addWidget(button1, 0,0);
mainLayout->addWidget(button2, 0,1);
mainLayout->addWidget(button3, 1,0);
mainLayout->addWidget(button4, 1,1);
mainLayout->addWidget(button5, 2,0);
mainLayout->addWidget(button6, 2,1);
}

void createIcons()
{

}


seniorgui.cpp



#include "seniorgui.h"
#include "iconArea.h"
#include <QtGui>
seniorGui::seniorGui(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
centralWidget = new QWidget;
setCentralWidget(centralWidget);

QGridLayout *mainLayout = new QGridLayout;
mainLayout->addWidget(previewArea, 0, 0, 0, 0);
centralWidget->setLayout(mainLayout);

createActions();
createMenus();
createToolBars();

setWindowTitle(tr("ModBus TCP/IP Senior Gui"));
resize(minimumSizeHint());

}

void seniorGui::closeEvent(QCloseEvent *event)
{

}

void seniorGui::about()
{
QMessageBox::about(this, tr("About Application"),
tr("This is a <b>Application</b> that will use"
"ModBus TCP/IP to connect and control several devices"));
}

void seniorGui::createActions()
{
connectAct = new QAction(QIcon("connect.png"), tr("&Connect"), this);
//connectAct = setShortcuts(QKeySequence::Connect);
connectAct->setStatusTip(tr("Connect to IP Address"));
//connect(connectAct, SIGNAL(clicked()), this, SLOT(connectFile()));

helpAct = new QAction(QIcon("help.gif"), tr("&help"), this);
//connectAct = setShortcuts(QKeySequence::Connect);
helpAct->setStatusTip(tr("Let's Help you out"));
//connect(helpAct, SIGNAL(clicked()), this, SLOT(helpFile()));

qtAct = new QAction(QIcon("qt.png"), tr("&Qt"), this);
//connectAct = setShortcuts(QKeySequence::Connect);
qtAct->setStatusTip(tr("Learn more about Qt"));
//connect(newAct, SIGNAL(clicked()), this, SLOT(qtHelp()));

disconnectAct = new QAction(QIcon("Disconnect.png"), tr("&Disconnect"), this);
//connectAct = setShortcuts(QKeySequence::Connect);
disconnectAct->setStatusTip(tr("Disconnecting from Module"));
//connect(newAct, SIGNAL(clicked()), this, SLOT(disconnectFile()));

}

void seniorGui::createToolBars()
{
fileToolBar = addToolBar(tr("Connect"));
fileToolBar->addAction(connectAct);
fileToolBar->addAction(disconnectAct);

fileToolBar = addToolBar(tr("Help"));
fileToolBar->addAction(helpAct);
fileToolBar->addAction(qtAct);


}
void seniorGui::createMenus()
{
fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->addAction(connectAct);
fileMenu->addAction(disconnectAct);

fileMenu = menuBar()->addMenu(tr("&Help"));
fileMenu->addAction(helpAct);
fileMenu->addAction(qtAct);
}
/*
void seniorGui::createStatusBars()
{
statusBar()->showMessage(tr("Ready"));
}
*/

seniorgui.h



#ifndef SENIORGUI_H
#define SENIORGUI_H

#include <QtGui>
#include <QIcon>
#include <QLayout>

class QAction;
class QMenu;
class iconArea;

class seniorGui : public QMainWindow
{
Q_OBJECT

public:
seniorGui(QWidget *parent = 0, Qt::WFlags flags = 0);

protected:
void closeEvent(QCloseEvent *event);
private slots:
void about();

private:
void createActions();
void createMenus();
void createToolBars();

QWidget *centralWidget;

// QGroupBox *previewGroupBox;
iconArea *previewArea;

QMenu *fileMenu;
QMenu *editMenu;
QMenu *helpMenu;

QToolBar *fileToolBar;
QToolBar *editToolBar;

QAction *aboutAct;
QAction *aboutQtAct;
QAction *connectAct;
QAction *disconnectAct;
QAction *helpAct;
QAction *qtAct;

};

#endif // SENIORGUI_H


main.cpp



#include "seniorgui.h"
#include <QtGui/QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
a.setOrganizationName("");
a.setApplicationName("");
seniorGui w;
w.show();
return a.exec();
}

hoffen
11th October 2011, 05:28
you forgot this previewArea = new iconArea(); in seniorGui

snowsoman
11th October 2011, 15:55
Well crap that worked perfectly. So i was declaring a new object based off my iconArea class? Why was it breaking there tho?