过去我在某个地方工作,因为我们打开了多个Maya会话,因此背景颜色可以随机更改,因此当您快速从一个会话切换时,很容易找出哪个窗口属于Maya会话。
到目前为止,我可以使用以下方法更改主界面的bgc:
window -e bgc 0.5 0.5 0.5 $gMainWindow;
搜索其他全局变量后,我发现$ AllWindows,$ CommandWindow等,因为文档指出'bgc'是仅Windows的标志。除了弹出的$ gCommandWindow之外,我无法在任何窗口上更改任何颜色,我不记得以前看到过它。
我希望至少可以更改MainWindow之外的Script Editor窗口,如果有人知道是否可行?它不是关键任务,但现在我有兴趣看看是否可以完成。
谢谢!
由于Maya的界面正在使用Qt
,因此可以使用PySide
的功能来调整所需的任何小部件。通常,唯一棘手的部分实际上是找到要修改的适当小部件。
这里是调整脚本编辑器的黄色边框的方法:
import shiboken2
from maya import cmds
from maya import OpenMayaUI
from PySide2 import QtWidgets
panels = cmds.getPanel(scriptType="scriptEditorPanel") # Get all script editor panel names.
if panels: # Make sure one actually exists!
script_editor_ptr = OpenMayaUI.MQtUtil.findControl(panels[0]) # Grab its pointer with its internal name.
script_editor = shiboken2.wrapInstance(long(script_editor_ptr), QtWidgets.QWidget) # Convert pointer to a QtWidgets.QWidget
editor_win = script_editor.parent().parent().parent().parent() # Not very pretty but found that this was the best object to color with. Needed to traverse up its parents.
editor_win.setObjectName("scriptEditorFramePanel") # This object originally had no internal name, so let's set one.
editor_win.setStyleSheet("#scriptEditorFramePanel {border: 3px solid rgb(150, 150, 45);}") # Set its styleSheet with its internal name so that it doesn't effect any of its children.
OpenMayaUI.MQtUtil
使您能够通过名称找到任何控件,因此只要知道要修改的小部件的名称,就可以找到它(困难的部分有时会找到它!)。在这种情况下,我不得不遍历几个父母来找到最适合勾勒整个窗口的父母。您可以随意使用此颜色,例如,仅显示文本区域。而且,由于这是PySide
的样式表,因此您可以随心所欲地做任何事情,例如影响背景颜色,轮廓的厚度等等。
由于我们只影响样式表,因此它也不会与首选项一起保存,并且将恢复为新会话时的样式。
希望有所帮助。