Исчезание панели меню в полноэкранном режиме, Как в Media Player Classic |
Здравствуйте, гость ( Вход | Регистрация )
Исчезание панели меню в полноэкранном режиме, Как в Media Player Classic |
QMainWindow |
4.8.2011, 13:57
Сообщение
#1
|
Участник Группа: Участник Сообщений: 198 Регистрация: 1.8.2010 Пользователь №: 1922 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброго времени суток!
Интересует, как сделать исчезающую панель меню в полноэкранном режиме? Как пример - плеер Media Player Classic. Когда входим в полноэкранный режим, панелька снизу исчезает. При этом, если мышь приблизить к нижнему краю экрана, то панель появляется и остается активной, если в фокусе мыши. А когда уводим мышь прочь, снова исчезает. Для начала попробовал использовать метод setVisible(), hide(), setEnabled(), но после такого вот исчезновения перестают работать горячие клавиши (например выход из полноэкранного режима - клавиша Esc). |
|
|
RazrFalcon |
4.8.2011, 14:56
Сообщение
#2
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
На главном окне (видео) отлавливаете MouseMoveEvent. И есть он например входит в область 200пикс. снизу, то:
|
|
|
QMainWindow |
4.8.2011, 16:39
Сообщение
#3
|
Участник Группа: Участник Сообщений: 198 Регистрация: 1.8.2010 Пользователь №: 1922 Спасибо сказали: 0 раз(а) Репутация: 0 |
А если я буду использовать для скрытия панели метод hide(), то не будут работать горячие клавиши. Вот сейчас вошел в режим, панель скрылась, дальше хочу вызвать диалог Открыть, нажимаю ctrl + O, и ничего не происходит.
|
|
|
ilyabvt |
4.8.2011, 17:03
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: 3 |
Можно просто сдвигать за пределы видимости (например в отрицательные координаты) или делать виджет прозрачным (свойство opacity кажется).
|
|
|
RazrFalcon |
4.8.2011, 17:12
Сообщение
#5
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
А почему это при скрытии панели пропадут хоткеи?
Или у вас хоткеи на самой панели? Сдвигать в минус - именно оно. Так s/umplayer делает. |
|
|
QMainWindow |
4.8.2011, 17:17
Сообщение
#6
|
Участник Группа: Участник Сообщений: 198 Регистрация: 1.8.2010 Пользователь №: 1922 Спасибо сказали: 0 раз(а) Репутация: 0 |
Хоткеи делал в дизайнере.
В минус? попробую. А акой вопрос: отлов мыша чем делается? mouseMoveEvent() и setMouseTracking() что-то не помогают... В Г.О. сделал метод mouseMoveEvent(), в нем же сделал setMouseTracking(true). Или не так? А, понял, что не так. Отображается, только если во время движения зажата ЛКМ. А как без нее? Сообщение отредактировал QMainWindow - 4.8.2011, 17:19 |
|
|
ilyabvt |
4.8.2011, 18:03
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: 3 |
Что такое Г.О.?
Если бы вы показали код было бы немного проще. По идее setMouseTracking(true) как раз и служит для того что бы отлавливать движение мыши даже если не нажата никакая клавиша. |
|
|
RazrFalcon |
4.8.2011, 18:13
Сообщение
#8
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
В хедере главного окна:
В сорусе определяем как:
|
|
|
QMainWindow |
4.8.2011, 19:30
Сообщение
#9
|
Участник Группа: Участник Сообщений: 198 Регистрация: 1.8.2010 Пользователь №: 1922 Спасибо сказали: 0 раз(а) Репутация: 0 |
Да, уже разобрался, видать что-то перепутал...
Г.О. == Главное Окно. |
|
|
QMainWindow |
4.8.2011, 23:53
Сообщение
#10
|
Участник Группа: Участник Сообщений: 198 Регистрация: 1.8.2010 Пользователь №: 1922 Спасибо сказали: 0 раз(а) Репутация: 0 |
Получилось! Только не прятал, а менял raise()/lower().
ОФФТОП: что работает быстрее - if(!e->y()) или if(e->y() == 0)? |
|
|
Текстовая версия | Сейчас: 29.3.2024, 16:48 |