【Maya】Qt(PySide) In Maya

  • A+
所属分类:MayaScript

【Maya】Qt(PySide) In Maya

Maya 2011版本开始采用Qt重写了软件界面,使得软件的UI(用户界面)自由度得到很大的提升。尽管经历过不少BUG,Qt的规范逐渐被用户接受,尤其是在编写自定义插件界面时候,Qt提供了丰富自由的控件,可视化的编辑方式提高了工程效率。

Qt是什么?

Qt是跨平台的C++图形用户界面应用程序开发框架。

PyQt,是Python和Qt库融合的工具包,仅支持GPL协议。

PySide,支持LGPL和GPL协议。和PyQt相似,使用相同的API,不过PySide只支持PyQt的API2,并且PySide比PyQt的Python语法更严格。Maya2017起支持PySide(PySide版本是2.0)。

基于Maya平台进行插件开发,除了语法上的一些差异,PyQt和PySide的区别并不大。与开发独立应用程序不同,多数情况下Qt只是作为UI绘制工具来使用。

*maya内置MEL创建的UI元素过程繁琐不友好,功能也较少,而传统使用python语法创建UI也是基于现有的MEL函数进行的。


【Qt Designer】

使用Qt控件绘制UI的程序,集成在maya的安装路径下,例如:

C:\Program Files\Autodesk\Maya2019\bin\ designer.exe【Maya】Qt(PySide) In Maya

Qt Designer很容易上手,基本操作就是拖拉控件到窗口内,步骤如下:

1.创建窗体;

2.设置布局;

3.放置控件;

4.连接信号到槽;

5.保存UI文件。

【Maya】Qt(PySide) In Maya


【技术点】

1.窗体有三种类型:Dialog、Main Window、Widget

Dialog(对话框):多用于弹窗,是和用户进行简要通讯的顶级窗口。

Main Window(主窗口):包含菜单栏和状态栏的主应用程序窗口。

Widget(部件):不含任何控件的空白窗口

事实上,Dialog和Main Window的类继承自Widget的类,是它的功能拓展形式。因为maya本身就是一个应用程序,所以基于maya,原则上应使用Widget的窗体。

2.与maya内置UI函数不同,Qt的控件可以不使用布局函数,但我们应该保持良好的设计习惯,先布局后控件。

3.Qt Designer预览的效果不一定是maya中的最终效果,因为maya会对UI控件进行转换,而不是直接使用Qt的原生控件。

4.信号/槽是Qt连接UI控件(信号)到其他UI控件(槽)的方式,需要对应控件上的可执行函数,类似maya UI函数中参数指向函数名的方式,

5.使用PyQt或者PySide进行用户界面设计的时候,应该将python部件作为maya窗口的子级。如果python部件作父级(独立的任务窗口),可能会被Python解释器的垃圾回收器销毁。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: