在Maya中更改窗口的背景色(bgc?

问题描述 投票:0回答:1

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

到目前为止,我可以使用以下方法更改主界面的bgc:

window -e bgc 0.5 0.5 0.5 $gMainWindow;

搜索其他全局变量后,我发现$ AllWindows,$ CommandWindow等,因为文档指出'bgc'是仅Windows的标志。除了弹出的$ gCommandWindow之外,我无法在任何窗口上更改任何颜色,我不记得以前看到过它。

我希望至少可以更改MainWindow之外的Script Editor窗口,如果有人知道是否可行?它不是关键任务,但现在我有兴趣看看是否可以完成。

谢谢!

python user-interface maya mel
1个回答
0
投票

由于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的样式表,因此您可以随心所欲地做任何事情,例如影响背景颜色,轮廓的厚度等等。

由于我们只影响样式表,因此它也不会与首选项一起保存,并且将恢复为新会话时的样式。

希望有所帮助。

Example

© www.soinside.com 2019 - 2024. All rights reserved.