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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Всплывающие сообщения  (Прочитано 4471 раз)
phpCoder
Гость
« : Январь 08, 2016, 14:37 »

Добрый день.
Как в Qt сделать всплывающие сообщения? Пример: в приложении произошло какое-то событие (например завершена загрузка). Это я хочу сказать пользователю, поэтому внизу главного окна должно выехать (slide) всплывающее сообщение. На Javascript (jQuery) это делается элементарно.

Условия, которым должно удовлетворять такое сообщение:
1. Контейнер, (виджет/фрейм...) в котором написано сообщение, должен быть растянут по размеру родительского виджета. При изменении размеров родителя меняется и ширина самого сообщения. Высота сообщения зависит всегда от высоты содержимого.
2. Таких сообщений может быть на экране несколько, поэтому они не должны перекрывать друг друга.
3. С точки зрения html/css такое сообщение позиционируется абсолютно. Как тут этого добиться? Ведь всплывающее сообщение появляется поверх родителя и не должно изменять его layout, т.е. соседние виджеты должны остаться на своих местах и никуда не съехать.

Возможно в Qt должен быть какой-то другой подход для создания подобных сообщений, нежели в JS...


Аналог таких сообщений можно увидеть в самом Qt Creator, когда собираешь проект (оно еще содержит зеленый прогресс-бар).
« Последнее редактирование: Январь 08, 2016, 14:40 от phpCoder » Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #1 : Январь 08, 2016, 17:39 »

На Javascript (jQuery) это делается элементарно.
Языки высокого уровня и предназначены для того что-бы было все элементарно.
Ты работаешь с С++, а это язык среднего уровня. Так что приготовся к тому, что деталей будет в сотню раз больше на каждый чих.
Что до сообщений, тебе нужно полезть в "Examples and Demos" за примером "Window Flags" и окнов в стиле "Qt::ToolTip".
И от него и плясать.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #2 : Январь 10, 2016, 13:42 »

http://www.prog.org.ru/topic_18716_0.html
http://www.prog.org.ru/topic_16737_0.html
« Последнее редактирование: Январь 10, 2016, 13:45 от navrocky » Записан

Гугль в помощь
Dimka Novikov
Гость
« Ответ #3 : Январь 20, 2016, 11:46 »

Можете глянуть вот тут http://www.prog.org.ru/index.php?topic=29405

Для первого появления сообщения можно использовать WAF::Animation::sideSlide, скрыв фоновую декорацию, а для появления новых сообщений WAF::Animation::slide

А вообще кейс интересный, напишите потом, что у вас получится!
Записан
Dimka Novikov
Гость
« Ответ #4 : Январь 20, 2016, 13:43 »

У меня получилось вот так Улыбающийся



UPD: Вылил пример на гитхаб, который давал в предыдущем посте. И это не конечная реализация самой системы уведомлений, а лишь пример, расценивайте это скорее, как направление для поиска, а не как готовое решение.
« Последнее редактирование: Январь 20, 2016, 14:04 от Dimka Novikov » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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