首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PySide2应用中,如何获取QWindow的ID?

在PySide2应用中,如何获取QWindow的ID?
EN

Stack Overflow用户
提问于 2017-09-19 08:40:27
回答 2查看 833关注 0票数 1

在Maya2017附带的PySide2版本中,似乎缺少QWindow类上的winId方法:

代码语言:javascript
复制
w.winId()
Error: AttributeError: file <maya console> line 1: 'PySide2.QtGui.QWindow' object has no attribute 'winId' # 

有没有办法从现有的QWindow实例中获取此值?

EN

回答 2

Stack Overflow用户

发布于 2017-09-19 13:08:52

我在macOS 10.11.6上使用了Maya 2018。试试这段代码。它起作用了。

代码语言:javascript
复制
from maya import OpenMayaUI as omui 

try:
  from PySide2.QtCore import * 
  from PySide2.QtGui import * 
  from PySide2.QtWidgets import *
  from PySide2 import __version__
  from shiboken2 import wrapInstance 
except ImportError:
  from PySide.QtCore import * 
  from PySide.QtGui import * 
  from PySide import __version__
  from shiboken import wrapInstance 

mayaMainWindowPtr = omui.MQtUtil.mainWindow() 
mayaMainWindow= wrapInstance(long(mayaMainWindowPtr), QWidget) 

w = QLabel("Hello, Window", parent=mayaMainWindow) 
w.setObjectName('Label1') 
w.setWindowFlags(Qt.Window)
w.show() 

在键入之后:

代码语言:javascript
复制
w.winId()

你会得到类似这样的东西:

代码语言:javascript
复制
# Result: 140640756092816 #

票数 0
EN

Stack Overflow用户

发布于 2017-09-21 07:15:53

安迪的例子在Maya2018和最新版本的Maya2017中都适用,但至少在MAYA2017的初始版本中抛出了一个例外。

我估计这个问题是由PySide2中的一个bug引起的,这个bug在这个过程中得到了修复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46290088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档