Название: kde4 - notifications, python, pyqt Отправлено: razum2um от Май 07, 2009, 19:52 Получить иконку в трее - это одно. (QSystemTrayIcon)
Подскажите, как показывать всплывающие уведомления?! Проблема в том, что уведомление выскакивает не от иконки, а в левом верхнем углу экрана. о_О (независимо от того, где находится сам трей) Код: self.tray_icon = QSystemTrayIcon() Qt 4.5.0 KDE 4.2 python2.5, PyQt-4.4.4-r2 Название: Re: kde4 - notifications, python, pyqt Отправлено: Admin от Май 08, 2009, 12:57 Я бы попробовал покопаться в исходниках qutim - icq клиента.
Название: Re: kde4 - notifications, python, pyqt Отправлено: razum2um от Май 08, 2009, 19:33 Оно конечно, хорошо, но там уведомление другое, не привязанное к трею.
(этак, батенька, Qlabel фиксированных размеров можно по таймеру со опр. скоростью менять координаты отрисовки Но муторно так решать такую задачу... Не бейте, я новичек, и C++ что-то чуждое еще.Я ж написал свои ср-ва разработки... Т.е использование кода напрямую исключено =( ) Короче я отлично помню, что в 3х кедах уведомления kteatime&kopete работали. Более того, мне такой дизайн нравится больше, чем стандарт в кедах сейчас... --- Резюме: пожалуйста, подскажите, как там kteatime работает. Что за QPoint? Как получается, что оно работает? сам пошел проверять гипотезу про qutim. ------ UPD kteatime код из четверки, уведомление qt-шное. Код: connect(this, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(showPopup(QSystemTrayIcon::ActivationReason))); Название: Re: kde4 - notifications, python, pyqt Отправлено: razum2um от Июль 04, 2009, 00:02 Проблема решена таким образом (http://"http://razum2um.alwaysdata.net/2009/07/02/notifications")
Название: Re: kde4 - notifications, python, pyqt Отправлено: shadone от Июль 10, 2009, 19:21 К сожалению это известная проблема, пока не решена: http://www.trolltech.com/developer/task-tracker/index_html?method=entry&id=195042
Проблема возникает из-за асинхронности X-сервера, т.к. после вызова show() окно на самом деле еще не показано и его координаты неизвестны. В качестве "хака" - вызывать processEvents() перед показом сообщения. Но и это решение не обязательно будет работать (зависит от скорости и загруженности компьютера и от window manager). |