Оно конечно, хорошо, но там уведомление другое, не привязанное к трею.
(этак, батенька, Qlabel фиксированных размеров можно по таймеру со опр. скоростью менять координаты отрисовки
Но муторно
так решать
такую задачу...
Не бейте, я новичек, и
C++ что-то чуждое еще.Я ж написал свои ср-ва разработки...
Т.е использование кода напрямую исключено =( )
Короче я отлично помню, что в 3х кедах уведомления kteatime&kopete
работали.
Более того, мне такой дизайн нравится
больше, чем стандарт в кедах сейчас...
---
Резюме:
пожалуйста, подскажите, как там kteatime работает. Что за QPoint? Как получается, что оно работает?
сам пошел проверять гипотезу про qutim.
------
UPD kteatime код из четверки, уведомление qt-шное.
connect(this, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(showPopup(QSystemTrayIcon::ActivationReason)));
.......
......
void TopLevel::showPopup(QSystemTrayIcon::ActivationReason reason)
{
if(reason==QSystemTrayIcon::Context) {
m_popup->setVisible(false);
}
else if(reason==QSystemTrayIcon::Trigger || reason==QSystemTrayIcon::DoubleClick) {
if(m_popup->isVisible())
m_popup->setVisible(false);
else
m_popup->show(calculatePopupPoint());
}
}
QPoint TopLevel::calculatePopupPoint()
{
QPoint pos=geometry().topLeft();
int x=pos.x();
int y=pos.y();
int w=m_popup->minimumSizeHint().width();
int h=m_popup->minimumSizeHint().height();
QRect r=KGlobalSettings::desktopGeometry(QPoint(x+w/2,y+h/2));
if(x<r.center().x())
x+=geometry().width();
else
x-=w;
if((y+h)>r.bottom())
y=r.bottom()-h;
if((x+w)>r.right())
x=r.right()-w;
if(y<r.top())
y=r.top();
if(x<r.left())
x=r.left();
return QPoint(x,y);
}