Russian Qt Forum
Сентябрь 25, 2024, 02:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как сделать в Qt окно поверх всех окон  (Прочитано 7987 раз)
was
Гость
« : Июль 26, 2006, 21:05 »

Подскажите пожалуйста как можно в Qt (в частности версия 2.3.0) сделать окно поверх всех окон. Пробовал при создании QWidget установить флаг Qt::WStyle_StaysOnTop.  Не помогает.
И второй вопрос: Как в том же Qt при запуске программы узнать, не запущен ли уже экзепляр этой программы? Ддля того что бы в системе был только один такой экземпляр.
 Используемая ОС Linux, Менеджеры окон  ELK и Motif.
Буду благодарен за совет.
Записан
Hordi
Гость
« Ответ #1 : Июль 27, 2006, 09:48 »

поиск по формум тебе поможет.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #2 : Июль 27, 2006, 11:15 »

насчет запуска, QMutex может помочь
Записан
Sergeich
Гость
« Ответ #3 : Июль 27, 2006, 11:49 »

Цитата: "Admin"
насчет запуска, QMutex может помочь
Не поможет, QMutex работает только в пределах процесса. В принципе есть два подхода: либо ты захватываешь какой-нить системный ресурс, к-ый автоматически освобождается при завершении процесса( серверный сокет, семафор, временный файл ), либо ищешь свое приложение в системной таблице процессов. Самое простое и переносимое ( в рамках Qt ) юзать QServerSocket.
Записан
was
Гость
« Ответ #4 : Июль 27, 2006, 12:47 »

Sergeich спасибо. По своему второму вопросу я так пока и делаю. Создаю временный файл и по окончании работы программы его удаляю. Но все таки хотелось бы, что бы это было как то в классическом стиле Qt. Но в принципе сойдет и так.
А вот как сделать окно поверх других окон?
Пока что перехватываю сообщение "потеря фокуса" и перерисовываю окно.
Но это срабатывает только один раз. Да и неправильно это как-то. Пробовал посылать менеджеру окон ELK сообщение о отображении окна поверх других окон. Но это сообщение перехватывают все запущенные окна. Да и не хочется зависеть от конкретного менеджера. Должно же быть в Qt что стандартное именно для этого.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.