Название: Всплывающие сообщения Отправлено: phpCoder от Январь 08, 2016, 14:37 Добрый день.
Как в Qt сделать всплывающие сообщения? Пример: в приложении произошло какое-то событие (например завершена загрузка). Это я хочу сказать пользователю, поэтому внизу главного окна должно выехать (slide) всплывающее сообщение. На Javascript (jQuery) это делается элементарно. Условия, которым должно удовлетворять такое сообщение: 1. Контейнер, (виджет/фрейм...) в котором написано сообщение, должен быть растянут по размеру родительского виджета. При изменении размеров родителя меняется и ширина самого сообщения. Высота сообщения зависит всегда от высоты содержимого. 2. Таких сообщений может быть на экране несколько, поэтому они не должны перекрывать друг друга. 3. С точки зрения html/css такое сообщение позиционируется абсолютно. Как тут этого добиться? Ведь всплывающее сообщение появляется поверх родителя и не должно изменять его layout, т.е. соседние виджеты должны остаться на своих местах и никуда не съехать. Возможно в Qt должен быть какой-то другой подход для создания подобных сообщений, нежели в JS... Аналог таких сообщений можно увидеть в самом Qt Creator, когда собираешь проект (оно еще содержит зеленый прогресс-бар). Название: Re: Всплывающие сообщения Отправлено: panAlexey от Январь 08, 2016, 17:39 На Javascript (jQuery) это делается элементарно. Языки высокого уровня и предназначены для того что-бы было все элементарно.Ты работаешь с С++, а это язык среднего уровня. Так что приготовся к тому, что деталей будет в сотню раз больше на каждый чих. Что до сообщений, тебе нужно полезть в "Examples and Demos" за примером "Window Flags" и окнов в стиле "Qt::ToolTip". И от него и плясать. Название: Re: Всплывающие сообщения Отправлено: navrocky от Январь 10, 2016, 13:42 http://www.prog.org.ru/topic_18716_0.html
http://www.prog.org.ru/topic_16737_0.html Название: Re: Всплывающие сообщения Отправлено: Dimka Novikov от Январь 20, 2016, 11:46 Можете глянуть вот тут http://www.prog.org.ru/index.php?topic=29405
Для первого появления сообщения можно использовать WAF::Animation::sideSlide, скрыв фоновую декорацию, а для появления новых сообщений WAF::Animation::slide А вообще кейс интересный, напишите потом, что у вас получится! Название: Re: Всплывающие сообщения Отправлено: Dimka Novikov от Январь 20, 2016, 13:43 У меня получилось вот так :)
(http://dimkanovikov.pro/assets/images/dev/WAF-demo3.gif) UPD: Вылил пример на гитхаб, который давал в предыдущем посте. И это не конечная реализация самой системы уведомлений, а лишь пример, расценивайте это скорее, как направление для поиска, а не как готовое решение. |