Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Fregloin от Август 18, 2011, 11:16



Название: Как отобразить немодальное окно?
Отправлено: Fregloin от Август 18, 2011, 11:16
Как отобразить немодальное окно?

я делаю в слоте так:
Код:
void some_slot()
{
 Dialog d;
 d.show();
}

но окно появляется на секунду и исчезает. exec помогает, но окно блокирует остальные.


Название: Re: Как отобразить немодальное окно?
Отправлено: Пантер от Август 18, 2011, 11:17
d.exec ();


Название: Re: Как отобразить немодальное окно?
Отправлено: Fregloin от Август 18, 2011, 11:18
exec делает окно модальным, что в моем случае не то что мне нужно - мне надо что бы окно отображалось параллельно главному.


Название: Re: Как отобразить немодальное окно?
Отправлено: GreatSnake от Август 18, 2011, 11:19
У тебя после d.show() d сразу же уничтожается.
Организовывай локальный eventLoop либо аллокируй d в куче.


Название: Re: Как отобразить немодальное окно?
Отправлено: Пантер от Август 18, 2011, 11:20
Код
C++ (Qt)
void some_slot()
{
Dialog *d = new Dialog (this);
d->show();
}
 


Название: Re: Как отобразить немодальное окно?
Отправлено: Fregloin от Август 18, 2011, 11:21
я так и понял, ну а как сделать что бы не удалялось?
хранить указатель на диалог внутри класса?

myclass
{
Dialog * d;
}

void slot()
{
 d = new Dialog;
}
?


Название: Re: Как отобразить немодальное окно?
Отправлено: Fregloin от Август 18, 2011, 11:22
после закрытия диалога он уничтожается автоматически?


Название: Re: Как отобразить немодальное окно?
Отправлено: GreatSnake от Август 18, 2011, 11:24
после закрытия диалога он уничтожается автоматически?
Только если будет выставлен атрибут Qt::WA_DeleteOnClose.


Название: Re: Как отобразить немодальное окно?
Отправлено: Fregloin от Август 18, 2011, 11:37
все спасибо разобрался