Russian Qt Forum

Qt => Общие вопросы => Тема начата: Myav от Декабрь 22, 2006, 00:38



Название: [Qt 4.2.0] qApp->aboutQt() закрывает приложение
Отправлено: Myav от Декабрь 22, 2006, 00:38
Странное дело, после нажатия на "OK" в диалоге aboutQt() приложение закрывается =) Может быть потому, что в приложении нет ни одного QWidget?

Точка входа в приложение:
Код:
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    TrayIcon trayIcon;
    trayIcon.show();
    return app.exec();
}


TrayIcon.h:
Код:
class TrayIcon: public QSystemTrayIcon
{
Q_OBJECT

public:
TrayIcon(QWidget *parent = 0);
~TrayIcon();

private:
QAction *bugAction;
QMenu *trayIconMenu;
};


TrayIcon.cpp:
Код:
TrayIcon::TrayIcon(QWidget *parent): QSystemTrayIcon(QIcon(":/Images/SomeIcon.png"), parent)
{
bugAction = new QAction("Bug...", this);
connect(bugAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));

trayIconMenu = new QMenu();
trayIconMenu->addAction(bugAction);
setContextMenu(trayIconMenu);
}

TrayIcon::~TrayIcon()
{
delete trayIconMenu;
}


Название: [Qt 4.2.0] qApp->aboutQt() закрывает приложение
Отправлено: Вудруф от Декабрь 22, 2006, 08:49
В TrayIcon.cpp, видимо, пропущена строка:
Код:
TrayIcon::TrayIcon (QWidget *parent) :


добавлено спустя 49 минут:

 
Цитировать
Может быть потому, что в приложении нет ни одного QWidget?

Мне почему-то тоже так кажется.


Название: [Qt 4.2.0] qApp->aboutQt() закрывает приложение
Отправлено: Myav от Декабрь 22, 2006, 12:11
Цитировать
В TrayIcon.cpp, видимо, пропущена строка:

Исправил.


Название: [Qt 4.2.0] qApp->aboutQt() закрывает приложение
Отправлено: Dendy от Декабрь 22, 2006, 16:40
Добавь в main()

Код:
app.setQuitOnLastWindowClosed( false );


По умолчанию стоит true, закрьІвается окно - закрьІвается приложение. А так как у тебя приложение в какой-то может жить без окон, только в трее, то тебе вариант по умолчанию не подходит. Ибо первьІй же диалог при закрьІтии отошлёт QApplicationquit().


Название: [Qt 4.2.0] qApp->aboutQt() закрывает приложение
Отправлено: Myav от Декабрь 24, 2006, 02:19
Dendy, спасибо. Вы очень выручательный форумчанин :)