Qt - Aplikacja się nie wyświetla

0

Proszę o pomoc z tą aplikacją. Po kompilacji (bez błędów) i uruchomieniu nie pokazuje się okno aplikacji. Proces dalej pracuje. Pomóżcie znaleźć przyczynę :)
Używam Win 7, MSVS2010 i framework'a Qt.

// main.cpp
#include "GUI.h"
#include <QtGui/QApplication>

int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
	app.setApplicationName("Urząd Pracy");
	GUI *gui = new GUI();
	gui->show();
	return app.exec();
}
// GUI.h
#ifndef GUI_H
#define GUI_H

#include <QtGui/QMainWindow>
#include <QButtonGroup>
#include <qaction.h>
#include <qboxlayout.h>
#include <qmenubar.h>
#include <qstatusbar.h>
#include <qcoreapplication.h>
//#include <QWebView>
#include <map>

class GUI : public QMainWindow
{
	Q_OBJECT

public:
	GUI();

	private slots:
		void exitApp();
		void saveDatabases();
		void exportOffer();
		void exportEmployer();
		void searchOffer();
		void searchEmployer();
		void addOffer();
		void addEmployer();
		void removeOffer();
		void removeEmployer();
		void nextOffer();
		void previousOffer();
		void nextEmployer();
		void previousEmployer();
		void aboutApp();

private:
	void createActions();
	void createMenus();
	void createStatusBar();
	void onStartReadData();

	// QWebView *offerViewer;
	// QWebView *employerViewer;
	QButtonGroup *buttons;
	QTabWidget *tabWidget;
	QMenu *fileMenu;
	QMenu *offerMenu;
	QMenu *employerMenu;

	 QAction *saveAct;
     QAction *exitAct;
     QAction *aboutAct;
	 QAction *addOfferAct;
	 QAction *addEmployerAct;
	 QAction *removeOfferAct;
	 QAction *removeEmployerAct;
     QAction *searchOfferAct;
     QAction *searchEmployerAct;
     QAction *exportOfferAct;
	 QAction *exportEmployerAct;
};

class OfferViewerTab : public QWidget
{
	Q_OBJECT

public:
	OfferViewerTab();
};

class EmployerViewerTab : public QWidget
{
	Q_OBJECT

public:
	EmployerViewerTab();
};

class SearchViewTab : public QWidget
{
	Q_OBJECT

public:
	SearchViewTab();
};

#endif // GUI_H
// GUI.cpp
#include "GUI.h"

GUI::GUI()
{
	onStartReadData();
	tabWidget = new QTabWidget;
	tabWidget->addTab(new OfferViewerTab(), tr("Oferty"));
    tabWidget->addTab(new EmployerViewerTab(), tr("Pracodawcy"));
    tabWidget->addTab(new SearchViewTab(), tr("Wyszukiwanie"));
	setCentralWidget(this);

	createActions();
	createMenus();
	createStatusBar();

	QVBoxLayout *mainLayout = new QVBoxLayout();
	mainLayout->addWidget(tabWidget);
	setLayout(mainLayout);

	setWindowTitle(tr("Urząd pracy"));
}

void GUI::createActions()
{
	saveAct = new QAction(tr("Zapisz bazy danych"), this);
	saveAct->setShortcuts(QKeySequence::Save);
    saveAct->setStatusTip(tr("Zapisuje oferty i dane pracodawców w pamięci do plików .CSV"));
    connect(saveAct, SIGNAL(triggered()), this, SLOT(saveDatabases()));

	exitAct = new QAction(tr("Zakończ"), this);
	exitAct->setShortcuts(QKeySequence::Quit);
    exitAct->setStatusTip(tr("Zamyka program i kończy pracę aplikacji"));
    connect(exitAct, SIGNAL(triggered()), this, SLOT(exitApp()));

	aboutAct = new QAction(tr("O programie"), this);
    aboutAct->setStatusTip(tr("Wyświetla podstawowe informacje o programie"));
    connect(aboutAct, SIGNAL(triggered()), this, SLOT(aboutApp()));

	addOfferAct = new QAction(tr("Dodaj ofertę"), this);
    addOfferAct->setStatusTip(tr("Dodaje ofertę na podstawie danych wprowadzonych przez użytkownika"));
    connect(addOfferAct, SIGNAL(triggered()), this, SLOT(addOffer()));

	removeOfferAct = new QAction(tr("Usuń ofertę"), this);
    removeOfferAct->setStatusTip(tr("Usuwa obecnie przeglądaną ofertę"));
    connect(removeOfferAct, SIGNAL(triggered()), this, SLOT(removeOffer()));

	addEmployerAct = new QAction(tr("Dodaj pracodawcę"), this);
    addEmployerAct->setStatusTip(tr("Dodaje pracodawcę na podstawie danych wprowadzonych przez użytkownika"));
    connect(addEmployerAct, SIGNAL(triggered()), this, SLOT(addEmployer()));

	removeEmployerAct = new QAction(tr("Usuń ofertę"), this);
    removeEmployerAct->setStatusTip(tr("Usuwa obecnie przeglądanego pracodawcę"));
    connect(removeEmployerAct, SIGNAL(triggered()), this, SLOT(removeEmployer()));

	searchOfferAct = new QAction(tr("Wyszukaj ofertę"), this);
    searchOfferAct->setStatusTip(tr("Wyszukuje ofertę na podstawie danych wprowadzonych przez użytkownika"));
    connect(searchOfferAct, SIGNAL(triggered()), this, SLOT(searchOffer()));

	searchEmployerAct = new QAction(tr("Wyszukaj ofertę"), this);
    searchEmployerAct->setStatusTip(tr("Wyszukuje ofertę na podstawie danych wprowadzonych przez użytkownika"));
    connect(searchEmployerAct, SIGNAL(triggered()), this, SLOT(searchEmployer()));

	exportEmployerAct = new QAction(tr("Eksportuj pracodawcę"), this);
    exportEmployerAct->setStatusTip(tr("Eksportuje pracodawcę do pliku HTML."));
    connect(exportEmployerAct, SIGNAL(triggered()), this, SLOT(exportEmployer()));

	exportOfferAct = new QAction(tr("Eksportuj ofertę"), this);
    exportOfferAct->setStatusTip(tr("Eksportuje ofertę do pliku HTML."));
    connect(exportOfferAct, SIGNAL(triggered()), this, SLOT(exportOffer()));

}

void GUI::createMenus()
{
	 fileMenu = menuBar()->addMenu(tr("P&liki"));
     fileMenu->addAction(saveAct);
	 fileMenu->addAction(aboutAct);
	 fileMenu->addAction(exitAct);

	 offerMenu = menuBar()->addMenu(tr("&Oferty"));
	 offerMenu->addAction(addOfferAct);
	 offerMenu->addAction(removeOfferAct);
	 offerMenu->addSeparator();
	 offerMenu->addAction(searchOfferAct);
	 offerMenu->addAction(exportOfferAct);

	 employerMenu = menuBar()->addMenu(tr("&Pracodawcy"));
	 employerMenu->addAction(addEmployerAct);
	 employerMenu->addAction(removeEmployerAct);
	 employerMenu->addSeparator();
	 employerMenu->addAction(searchEmployerAct);
	 employerMenu->addAction(exportEmployerAct);
}

void GUI::createStatusBar()
{
	statusBar()->showMessage(tr("Gotowy do pracy"));
}

void GUI::onStartReadData()
{

}

void GUI::aboutApp()
{

}

void GUI::exitApp()
{
	saveDatabases();
	statusBar()->showMessage(tr("Zapisano dane - wychodzenie z programu."));
	QCoreApplication::quit();
}

void GUI::saveDatabases()
{
	
}

void GUI::exportOffer()
{
	
}

void GUI::exportEmployer()
{
	
}

void GUI::searchOffer()
{
	
}

void GUI::searchEmployer()
{
	
}

void GUI::addOffer()
{
	
}

void GUI::addEmployer()
{
	
}

void GUI::removeOffer()
{
	
}

void GUI::removeEmployer()
{
	
}

void GUI::nextOffer()
{
	
}


void GUI::nextEmployer()
{
	
}

void GUI::previousOffer()
{
	
}

void GUI::previousEmployer()
{
	
}

OfferViewerTab::OfferViewerTab()
{

}

EmployerViewerTab::EmployerViewerTab()
{

}

SearchViewTab::SearchViewTab()
{

}


/* 

class OfferViewerTab : public QWidget
{
	Q_OBJECT

public:
	OfferViewerTab();
};

class EmployerViewerTab : public QWidget
{
	Q_OBJECT

public:
	EmployerViewerTab();
};

class SearchTab : public QWidget
{
	Q_OBJECT

public:
	SearchViewerTab();
};

*/
0

Definicja konstruktora posysa.W pełni zgodnie z zasadami winno być tak:
W .h

GUI(QWidget *parent = 0, Qt::WindowFlags flags = 0);

A w .cpp

GUI::GUI(QWidget *parent, Qt::WindowFlags flags):QMainWindow(parent,flags)
{}

Kolejny krok,to wywalaj po kolei elementy twojego GUI do czasu,aż się okno na ekranie pojawi-będziesz wtedy wiedział,co powoduje brak wyświetlania się.

0

SetCentralWidget(this) - to totalny bezsens
Na dodatek jeszcze potem ustawiasz swoj layout psujac całą resztę: menu itp.

Wywal setLayout i boxLayout, przenies na koniec setCentralWidget(tabWidget).

1 użytkowników online, w tym zalogowanych: 0, gości: 1