By June 3, 2014 2 Comments

PyQt / PySide helper for Houdini

hqtScreen

Всё чаще возникает необходимость дополнять свои скрипты для Houdini интерфейсами. К сожалению SideFX до сих пор не снабдили нас удобной библиотекой для работы с нативным интерфейсом Houdini. Но помощь приходит PyQt/PySide. Очень удобная библиотека на все случаи жизни. Но Houdini имеет свой интерфейс и не написан на Qt, как это было сделано с Maya или Nuke.
В связи с этим SideFX позаботились приложить в стандартную поставку специальные файлы pyqt_houdini.py и pyqt_thread_helper.py. В частности советуют использовать первый. Он работает, но с некоторыми недочетами. Некоторые из них решает модуль hqt.

  • скрипт встраивает один QApplication в event loop процесса Houdini и помещает его в неймспейс __main__. Таким образом любой скрипт, использующий hqt будет запущен в одном и том же QApplication автоматически
  • к запущенному QApplication применяется стиль, похожий на интерфейс Houdini (black). Все открытые виджеты будут выглядеть как обычные окна Houdini
  • реализован запуск в 3х разных режимах. Для их использование не требуется других функций, достаточно ваш виджет унаследовать от нужного класса:
    • widget: открытие простого окна. Работает если виджет создан из QWidget или QMainWindow. Основная функций showUi вернёт указатель но объект виджета.
    • dialog: открытие окна с блокировкой окна Houdini. Для этого требуется создать виджет, унаследованный от QDialog. showUi вертнёт результат выполнения диалога (bool) и указатель но объект диалога.
    • menu: Если виджет унаследован от QMenu, то меню откроется в текущей позиции курсора. showUi вернет указатель но выбранный QAction

Инсталяция

1. Прежде всего нужно установить PySide или PyQt4. Внимание! Правильно выберете версию PySide/PyQt под версию Python в вашем билде Haudini. Установить PySide\PyQt можно в библиотеки Houdini или в системный Python. Во втором случае необходимо добавить путь к этим библиотекам. Скрипт автоматически добавляет следующий путь в переменную PATH для Windows:

C:/Python27/Lib/site-packages

2. Cкопировать файл hqt.py в папку, где Houdini сможет его увидеть. Это Python библиотеки Houdini или любой путь, который есть в переменной PATH.

3. Выполнить код:

import hqt

Для открытия ваших виджетов используйте функцию

hqt.showUi()

Подробности можно увидеть выполнив команду

help(hqt)

Примеры использования приведены в файле hqt_example.py

Posted in: Houdini, PyQt, Python Tools

2 Comments on "PyQt / PySide helper for Houdini"

Trackback | Comments RSS Feed

  1. Anonymous says:

    Hi Paul,

    I am still trying to figure out how to use it with my pyqt script. But my questions has to do with the icons you are using inside your hqt.py file to match Houdini’s ui style. Where these files are saved? If it’s not part of your project, where inside Houdini’s installation directory are placed?

    cheers,
    Christos

    • PaulWinex says:

      Icons exists inside hqt.py as compiled resource. I’m just compile my icons and put into script (qt_resource_struct). In style use url link to decorate elements.

Оставьте комментарий