流程中的截图功能是必不可少的,实现的方法也很多。但是原理都是将一个动态桌面生成静态页面,然后裁剪选择的区域.之前基于pyqt写过一个截图的功能。现在跟大家分享一下,你可以任意更改代码,也可以写个界面把截图功能嵌入进去,当然如果可以请保留作者的信息.请留意博客更新,会不定期分享更多的代码便于大家学习!
由于工作时间没时间更新代码,也没优化,把之前写的代码附上,运行以下代码需要事先安装好pyqt.如果没有安装可以试试从maya2014 以上的PySide里导入QtGui和QtCore,我没测试PySide,不过应该可以。如果有什么问题请留言。 »Read More
« Posts under PyQt
maya screenshot pyqt截屏
only one column of a QTreeView/QTreeWidget editable只让一列可以编辑
如果你不写gui,可能不会在意maya channelBox的ui是如何实现的。最近一个工具需要用属性栏来显示和设置参数,当然思路有很多种。我使用QTreeView and QStandardItemModel 来实现的。因为我需要选择设置参数时能同时选中它的标签,但是标签那一栏需要设置为不可编辑,只做显示用。
只要override flags 方法即可
1 2 3 4 5 | def flags(self,index): flags = QtCore.Qt.ItemIsEnabled|QtCore.Qt.ItemIsSelectable if index.isValid() and index.column()==1: flags|= QtCore.Qt.ItemIsEditable return flags |
如果使用的是QTreeWidget只有使用openPersistentEditor()和closePersistentEditor()来解决这一问题
1 2 3 4 5 6 7 8 9 10 11 | self._lastOpen = None self.itemDoubleClicked.connect(self.openEditStatus) self.itemSelectionChanged.connect(self.closeEditStatus) def closeEditStatus(self): if self._lastOpen: self.closePersistentEditor(self._lastOpen,1) self._lastOpen = None def openEditStatus(self): if self.currentColumn() == 1: self.openPersistentEditor(self.currentItem(),1) self._lastOpen = self.currentItem() |
using eclipse with maya
关于 eclipse 配置问题
A . 需要的软件:
- Eclipse: http://www.eclips.org
- python: http://www.python.org
- Eclipse Maya-Editor: download
- Eclipse Mel-Editor: download
- jdk (注意选择的位数跟eclipse要一致): http://www.oracle.com (我用mac系统自带jdk,所以不需要另安装)