Название: Как сделать в Qt окно поверх всех окон Отправлено: was от Июль 26, 2006, 21:05 Подскажите пожалуйста как можно в Qt (в частности версия 2.3.0) сделать окно поверх всех окон. Пробовал при создании QWidget установить флаг Qt::WStyle_StaysOnTop. Не помогает.
И второй вопрос: Как в том же Qt при запуске программы узнать, не запущен ли уже экзепляр этой программы? Ддля того что бы в системе был только один такой экземпляр. Используемая ОС Linux, Менеджеры окон ELK и Motif. Буду благодарен за совет. Название: Как сделать в Qt окно поверх всех окон Отправлено: Hordi от Июль 27, 2006, 09:48 поиск по формум тебе поможет.
Название: Как сделать в Qt окно поверх всех окон Отправлено: Admin от Июль 27, 2006, 11:15 насчет запуска, QMutex может помочь
Название: Как сделать в Qt окно поверх всех окон Отправлено: Sergeich от Июль 27, 2006, 11:49 Цитата: "Admin" насчет запуска, QMutex может помочь Не поможет, QMutex работает только в пределах процесса. В принципе есть два подхода: либо ты захватываешь какой-нить системный ресурс, к-ый автоматически освобождается при завершении процесса( серверный сокет, семафор, временный файл ), либо ищешь свое приложение в системной таблице процессов. Самое простое и переносимое ( в рамках Qt ) юзать QServerSocket.Название: Спасибо за совет Отправлено: was от Июль 27, 2006, 12:47 Sergeich спасибо. По своему второму вопросу я так пока и делаю. Создаю временный файл и по окончании работы программы его удаляю. Но все таки хотелось бы, что бы это было как то в классическом стиле Qt. Но в принципе сойдет и так.
А вот как сделать окно поверх других окон? Пока что перехватываю сообщение "потеря фокуса" и перерисовываю окно. Но это срабатывает только один раз. Да и неправильно это как-то. Пробовал посылать менеджеру окон ELK сообщение о отображении окна поверх других окон. Но это сообщение перехватывают все запущенные окна. Да и не хочется зависеть от конкретного менеджера. Должно же быть в Qt что стандартное именно для этого. |