我在maxplus中有一些问题,在3ds max中使用pyside的python发行版。
我尝试将我的qtmainwindow设为最大窗口。当max最小化时,最小化我的qtmainwindow。
我们希望保持maxplus python安装不受影响,因此我无法安装sip或shiboken来使用wrapinstance来获取qobject。现在我想知道如果没有这些包,就可以实现育儿。
编辑: 我认识到shiboken是可用的,但是当我尝试将我的QMainWindow归结为应用程序时它会给出一个
** system exception **
这里有一些代码我希望有助于理解:
from PySide import QtCore, QtGui,shiboken
import MaxPlus
class ControlMainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super(ControlMainWindow, self).__init__(parent)
maxWinHwd = MaxPlus.Core.GetWindowHandle()
parent=shiboken.wrapInstance(long(maxWinHwd), QtGui.QWidget)
self.setParent(parent)
def main():
global app
app = QtGui.QApplication.instance()
if not app:
app = QtGui.QApplication(sys.argv)
global window
window=ControlMainWindow()
window.show()
if __name__ == '__main__':
main()
提前致谢
答案 0 :(得分:0)
我现在正在处理完全相同的问题,所以这是我迄今为止发现的最佳解决方案,可以在不必依赖Blur 3ds max Python扩展的情况下使用OOTB:
http://tech-artists.org/forum/showthread.php?5162-MaxPlus-parent-PySide-Window-to-Max-Window
我也试图在这里制作一个评论版的代码,虽然我是ctypes的新手,所以它可能不是100%正确:
我希望有所帮助!