Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: gelo от Декабрь 02, 2006, 21:21



Название: вспывающее окно
Отправлено: gelo от Декабрь 02, 2006, 21:21
Может кто знает, как сделать вспывающее окно, типа как в firefox когда скачивается файл? Может в QT есть что то более менее стандартное для этого?


Название: вспывающее окно
Отправлено: MrGooD от Декабрь 02, 2006, 21:34
А какое ты хочешь содержание этого окна, чтобы там просто выводилась какая-либо информция? Или это был полноценный диалог?


Название: вспывающее окно
Отправлено: gelo от Декабрь 02, 2006, 22:25
желательно диалог


Название: вспывающее окно
Отправлено: MrGooD от Декабрь 02, 2006, 23:06
ок, тогда тебе нужно чтобы главное окно при этом морозилось или работало паралельно?


Название: вспывающее окно
Отправлено: bigirbis от Декабрь 02, 2006, 23:19
Что-бы было модальным QDialog -> exec()
немодальным - QDialog/QWidget -> show()

А вообще, такие-то вещи надо из ассистанта вычитывать!!!


Название: вспывающее окно
Отправлено: gelo от Декабрь 02, 2006, 23:28
Вопрос не в том - модальное или не модальное. Вы нотификационное сообщение в Firefox видели (есть масса других приложений с подобным сообщением). Есть ли qt что-то подобное?


Название: вспывающее окно
Отправлено: Dendy от Декабрь 03, 2006, 01:50
Я, например, не видел Фаерфокса с его окнами. Судя по твоему описанию не могу понять, чем вспльІвающее окно должно отличаться от обьІчного окна. Модальностью, произвольньІм ненавязчивьІм появлением/скрьІтием, оформлением, доступом из разньІх точек программьІ?


Название: вспывающее окно
Отправлено: gelo от Декабрь 03, 2006, 07:44
Это такое маленькое окошко, без titlebar и frame, оно анимированно всплывает (обычно в правом нижнем углу экрана) и через несколько секунд исчезает.


Название: вспывающее окно
Отправлено: Mixolap от Декабрь 03, 2006, 09:05
Я такую штуку себе делал на основе примера из Qt windowflags и следующего кода:

   PreviewWindow *prevWindow = new PreviewWindow(this);      
   prevWindow->setWindowFlags(Qt::Popup);
   prevWindow->setText("some text");
   prevWindow->show();

   QDesktopWidget *desktop = QApplication::desktop();
   int width  = desktop->width();  // 1280
        int height = desktop->height(); // 1024

   QPoint pos(width - prevWindow->width(),height - prevWindow->height()-30);
   prevWindow->move(pos);

где PreviewWindow - класс из вышеназванного примера.