Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: neversleep от Февраль 24, 2013, 10:27



Название: [РЕШЕНО]QDialog::exec() и блокировка всего прочего
Отправлено: neversleep от Февраль 24, 2013, 10:27
Сорри за невнятное название темы, суть такова: пытаюсь создать всплывающее окошко уведомлений - своего рода tooltip, в общем-то все хорошо, кроме одного: доступ к этому окну блокируется если в программе открыть любой диалог через exec(), оно и понятно, но как от этого избавиться? Хочу чтобы окно было всегда доступно. Вариант с заменой exec'ов на show не предлагать :)

Код
C++ (Qt)
class Notification: public QWidget
{
   Q_OBJECT
 
public:
   explicit Notification(const QString &text, QWidget *parent = 0);
   ~Notification();
}
 
Notification::Notification(const QString &text, QWidget *parent = 0):
QWidget(parent)
{
   ui->setupUi(this);
   setAttribute(Qt::WA_DeleteOnClose);
   setAttribute(Qt::WA_TranslucentBackground);
   setWindowFlags(Qt::ToolTip);
...
}


Название: Re: QDialog::exec() и блокировка всего прочего
Отправлено: GreatSnake от Февраль 24, 2013, 11:25
Перегрузи
Код
C++ (Qt)
bool QApplication::notify ( QObject * receiver, QEvent * e ) [virtual]


Название: Re: QDialog::exec() и блокировка всего прочего
Отправлено: neversleep от Февраль 24, 2013, 12:38
А дальше что? :)


Название: Re: QDialog::exec() и блокировка всего прочего
Отправлено: Kurles от Февраль 24, 2013, 16:30
Попробуй в каждом диалоге в конструкторе вызывать setWindowModality(Qt::WindowModal)


Название: Re: QDialog::exec() и блокировка всего прочего
Отправлено: neversleep от Февраль 24, 2013, 17:10
Попробуй в каждом диалоге в конструкторе вызывать setWindowModality(Qt::WindowModal)
То, что нужно, спасибо.