在 Maya 中更改 windows 的背景颜色 (bgc)?

Changing background color (bgc) of windows in Maya?

我过去曾在某个地方工作,因为我们打开了多个 Maya 会话,背景颜色可以随机更改,因此当您快速从一个会话切换时,很容易找出 window 属于哪个会话什么玛雅会话。

到目前为止,我可以通过以下方式更改主要 UI 的 bgc:

window -e bgc 0.5 0.5 0.5 $gMainWindow;

在搜索其他全局变量后,我找到了 $AllWindows、$CommandWindow 等,因为文档指出 'bgc' 是一个仅 windows 的标志。除了弹出的 $gCommandWindow,我无法在任何 window 上更改任何颜色,我不记得以前见过它。

除了 MainWindow 之外,我希望至少更改脚本编辑器 window 如果有人知道这是否可能?这不是关键任务,但现在我很想知道它是否可以完成。

谢谢!

由于 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 使您能够按名称查找任何控件,因此只要您知道要修改的小部件的名称,就可以找到它(有时很难找到它! ).在这种情况下,我不得不遍历一些 parents 来找到最能勾勒整个 window 的轮廓。你可以随意使用这个和颜色,比方说,只有文本区域。因为这是 PySide 的风格 sheets 你可以做任何你想做的事情,比如影响背景颜色,轮廓的粗细等等。

因为我们只影响样式 sheet 这也不会与首选项一起保存,并且会恢复到新会话中的样式。

希望对您有所帮助。