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();
};
*/