Подтвердить что ты не робот

Использование функций панели задач Windows 7 в PyQt

Я ищу информацию об интеграции некоторых новых функций панели задач Windows 7 в свои приложения PyQt.

В частности, если уже существует возможность использовать новый индикатор прогресса (см. здесь) и быстрые ссылки (www.petri.co. ил/WP-содержание/добавления/new_win7_taskbar_features_8.gif).

Если бы кто-нибудь мог предоставить несколько ссылок или просто "еще не реализовано", я был бы очень благодарен.

Большое спасибо.

4b9b3361

Ответ 1

Как сказал кварк, функциональность не входит в Qt 4.5, но вы можете вызвать API Windows непосредственно из Qt. Его немного работы, хотя.

  • Новый API панели задач отображается через COM, поэтому вы не можете использовать ctypes.windll. Вам нужно создать файл .tlb для доступа к функциям. Получите определение интерфейса для ITaskbarList из этот пост форума или из окна SDK. Сохраните его в файл под названием, например. TaskbarLib.idl.

  • Создайте файл .tlb. Вероятно, вам понадобится SDK для Windows или получить компилятор IDL из другого места.

    midl TaskbarLib.idl /tlb TaskbarLib.tlb
    
  • Загрузите .tlb(вам нужны расширения Win32 для Python, http://python.net/crew/skippy/win32/Downloads.html):

    import comtypes.client as cc
    cc.GetModule("TaskbarLib.tlb")
    
  • Создайте объект TaskbarList. Функция установки индикатора выполнения находится в интерфейсе ITaskbarList3:

    import comtypes.gen.TaskbarLib as tbl
    taskbar = cc.CreateObject(
        "{56FDF344-FD6D-11d0-958A-006097C9A090}",
        interface=tbl.ITaskbarList3)
    
  • Теперь вы можете вызвать функции API:

    taskbar.HrInit()
    taskbar.SetProgressValue(self.winId(),40,100)
    

Здесь полный пример script. Источники:   1  2

Ответ 2

Существует дополнение Qt, которое реализует все расширения панели задач Windows 7. Он называется Q7Goodies. Он поставляется с привязками PyQt, поэтому, вероятно, это самый простой способ использовать возможности Windows 7 в PyQt.

Ответ 3

Не реализовано в Qt 4.5, но в работах для Qt 4.6 появляется. PyQt не будет завершать 4.6 до официального выпуска Qt 4.6, но вы можете сыграть с 4.6 моментальный снимок или проверить Qt repository и посмотреть, поддерживает ли версия С++ нужные функции. Если это произойдет, PyQt 4.6 также поддержит его.

Добавлено: список из 4.6 функций не показывает явной поддержки Windows 7, но это не значит, что у него не будет что вы хотите, поскольку, по крайней мере, если я правильно понимаю, вероятно, они сбросят эту функциональность в существующий виджет.