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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Всплывающие уведомления  (Прочитано 16095 раз)
Rem Norton
Гость
« Ответ #15 : Сентябрь 09, 2011, 23:47 »

Мои 5 копеек: (может кому пригодится)
Писал как-то давно для одного проектика, для людей не жалко.

Класс в приложении.
Интерфейс:
Код:
static void info(const QString& title,const QString& msg,const QPoint& point, int delay = 0, bool bShowArrow = true, bool bArrowDown = true);
static void critical(const QString& title,const QString& msg,const QPoint& point, int delay = 0, bool bShowArrow = true, bool bArrowDown = true);
static void warning(const QString& title,const QString& msg,const QPoint& point, int delay = 0, bool bShowArrow = true, bool bArrowDown = true);

где:
title - заголовок
msg - текст сообщения
delay - задержка (мсек)
bShowArrow - показывать стрелку
bArrowDown - если true, то стрелка вниз, иначе - вверх. Если bShowArrow = false, то по барабану  Смеющийся
point - точка, около которой будет отрисован виджет. Если bShowArrow == bArrowDown == true, то point - точка в которую укажет стрелка.

Пример вызова:
Код:
// Сначала собираем строку (если нужно)

        errorMess.clear();
bool bRes = true ;
if (cbClients->currentIndex() <0)
{
errorMess +=QString("<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px\"><span style=\"color:#ff0000;\"><b> %1</b></span>%2</p>").arg(QApplication::tr("-Customer")).arg(QApplication::tr(" should be chosen"));
bRes = false;
};
if (cbFaces->currentIndex() <0)
{
errorMess +=QString("<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px\"><span style=\"color:#ff0000;\"><b> %1</b></span>%2</p>").arg(QApplication::tr("-Representative of customer")).arg(QApplication::tr(" should be chosen"));
bRes = false;
}
if (!bRes) errorMess = "<style type=\"text/css\">p, li { white-space: pre-wrap; }</style>" + errorMess ;
...
...
// Потом отображаем
QBubbleTip::warning(QApplication::tr("Errors:"),errorMess,mapToGlobal(QPoint(10,10)));

На экране видим такое:



Ну вот как-то так...
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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