Qt 4.5.1, Slackware, qt creator 1.1
Простейшее приложение. главная форма не рисуется, только иконка в трее. там единственный пункт меню, вызывающий QMessageBox::about. После нажатия ОК на окошке QMesageBox программа выходит, что весьма странно.
/home/unnamed_hero/work/qt/testa/testa exited with code 0
Где я не прав?
main.cpp
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
return a.exec();
}
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtGui/QMainWindow>
#include <QSystemTrayIcon>
#include <QMenu>
#include <QAction>
#include <QMessageBox>
namespace Ui
{
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QSystemTrayIcon *nTray;
QMenu * trayMenu;
// QAction * exitAction;
// QAction * optionsAction;
QAction * aboutAction;
void initMenu ();
private slots:
void aboutShow ();
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
nTray = new QSystemTrayIcon (QIcon ("/usr/share/icons/MOPSIcons4/48x48/places/start-here-kde.png"),this);
trayMenu = new QMenu ();
initMenu ();
nTray->show();
}
MainWindow::~MainWindow()
{
delete ui;
delete aboutAction;
}
void MainWindow::initMenu()
{
aboutAction = new QAction (QIcon (":/icons/gnome-stock-about.png"), tr ("&About"), this);
connect (aboutAction, SIGNAL (triggered()), this, SLOT (aboutShow ()));
trayMenu->addAction(aboutAction);
nTray->setContextMenu(trayMenu);
}
void MainWindow::aboutShow()
{
QMessageBox::about (0, tr ("About foo"), tr ("foo is rocks \n"
"and best af all"));
}