![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
michael1988 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.7.2009 Репутация: нет Всего: нет |
помогите разобраться как в pyqt4 сделать трей, в windows. нашел как сделать отображение трея, но при нажатии на кнопку свернуть, программа сворачивается на панель, а не в трей
|
|||
|
||||
av0000 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 11.2.2009 Репутация: 1 Всего: 2 |
Если я правильно телепнул, то нужно _свернуть_окно_ в трей.
![]() 1. сделать иконку QSystemTrayIcon 2. переопределить обработчик closeEvent/hideEvent и вместо закрытия/минимизации делать self.hide() 3. по команде из меню иконки или обработчику нажатия на неё делать self.show() |
|||
|
||||
michael1988 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.7.2009 Репутация: нет Всего: нет |
спасибо, с этим вроде разобрался, только не получилось проставить картинку на трей и на само окно(сверху слева). если можно приведите пример
|
|||
|
||||
av0000 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 11.2.2009 Репутация: 1 Всего: 2 |
Выложил здесь.
Если иконка не в скомпилированном ресурсе - указывать полный или относительный путь без двоеточия в начале, иначе - это "путь" внутри файла ресурсов. ЗЫ: И вообще - RTFM рулит ![]() ЗЫЫ: да, и не забудь сделать self.tray.show() чтобы иконку-то показать ![]() Это сообщение отредактировал(а) av0000 - 14.7.2009, 08:24 |
|||
|
||||
michael1988 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.7.2009 Репутация: нет Всего: нет |
если можно еще пару вопросов, не совсем понятных..
1. как сделать чтобы по нажатию на трей окно разворачивалось, а еще при одном нажатии сворачивалось 2. как сделать чтобы окно при запуске не было видно, программа должна висеть в трее, но выполнять свою задачу, а при необходимости, (например, если программа закончила свое выполнение и выдала результат на экран) сама развернется.. если можно с примерами, как новичку, тяжело разобраться с этими вопросами.. спасибо) |
|||
|
||||
av0000 |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 11.2.2009 Репутация: 1 Всего: 2 |
1. Строку
не забыл? Тогда:
2. следует из 1. - при запуске _не_делать_ self.show() - только "внутри" self - self.tray.show(). У меня примерно так:
|
||||||||
|
|||||||||
michael1988 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.7.2009 Репутация: нет Всего: нет |
1. def onTray(self, reason):
if reason == self.tray.Trigger: if self.isVisible(): self.hide() else: self.show() не получается с этим... QObject.connect(self.tray, SIGNAL("activated(QSystemTrayIcon::ActivationReason)"), self.onTray) - здесь выдается ошибку на self.onTray 2. подскажите еще как можно сделать лейбл с прокруткой... в QGridLayout вставил QLabel и QScrollBar, а как закодить чтоб прокручивался текст не знаю... Это сообщение отредактировал(а) michael1988 - 20.7.2009, 21:24 |
|||
|
||||
av0000 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 11.2.2009 Репутация: 1 Всего: 2 |
onTray должен быть методом того же класса-наследника окна (не функцией, висящей в воздухе) И вообще - с треем есть пример в поставке pyQt - RTFM :-/ Это сообщение отредактировал(а) av0000 - 20.7.2009, 22:03 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |