Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: fuCtor от Март 01, 2009, 12:28



Название: QDialog непонятное поведение
Отправлено: fuCtor от Март 01, 2009, 12:28
Создал свое диалоговое окно, для введения настроек.
Добавил переопределил accept():
Код
C++ (Qt)
QSettings settings;
settings.setValue("host",host->text()),
settings.setValue("port",port->text().toInt()),
settings.setValue("path",path->text());
settings.setValue("updateInterval",interval->text().toInt());
settings.setValue("first_launch",false);
QDialog::accept();
 

Добавил менюшку которую связал со своим слотом:
Код
C++ (Qt)
//create settings item
QAction * settings = menu->addAction(QIcon(":/img/gear.png"),tr("Settings"));
connect(settings,SIGNAL(triggered(bool)),
this, SLOT(openSettings(bool)));
 
Код
C++ (Qt)
void TrayMenu::openSettings(bool){
SettingsDialog * form = new SettingsDialog();
if(form->exec() == QDialog::Accepted)
QApplication::exit();
delete form;
}
 

И почему-то, при нажатии налюбую кнопку в диалоге (OK, Cancel) приложение закрывается. Убирал из кода строку с exit(), все равно закрывается. Что не так делаю?:(


Название: Re: QDialog непонятное поведение
Отправлено: Dendy от Март 01, 2009, 12:37
Наверное приложение думает что должно закрыться при закрытии последнего (единственого) окна. Поставьте QApplication::void setQuitOnLastWindowClosed(false).


Название: Re: QDialog непонятное поведение
Отправлено: fuCtor от Март 01, 2009, 12:41
Спасибо  :) помогло.