cmds.confirmDialog,帮助 "Question Mark" Maya 按钮配置支持

cmds.confirmDialog, Help "Question Mark" button configuration support for Maya

在文档中 - https://help.autodesk.com/cloudhelp/2020/CHS/Maya-Tech-Docs/CommandsPython/confirmDialog.html

他们从未解决如何为帮助“问号”按钮配置消息。 这是我的代码片段:

cmds.confirmDialog(
        title="Wdinow", 
        message="Do somthing",
        messageAlign="center",
        button=['Import','Cancel'],
        defaultButton="Import",
        cancelButton="Cancel",
        backgroundColor=[0, 0, 0] #black
    )

这是 window 的样子:

我需要配置当他们单击帮助“问号”按钮时弹出的消息。

据我所知,cmds.confirmDialog 包装器没有为 WhatsThis text, nor does it provide access to the underlying QMessageBox 提供挂钩。

但是,如果您足够敏锐,也可以自己动手。此代码假定 Maya2020/PySide2:

from PySide2 import QtWidgets, QtCore


box = QtWidgets.QMessageBox(
    QtWidgets.QMessageBox.Icon.Question,
    'Message title', 
    'Message body goes here.\n\nHere are some more words to make the size a bit more reasonable',
    QtWidgets.QMessageBox.StandardButton.Ok|QtWidgets.QMessageBox.StandardButton.Cancel,
    None,
    QtCore.Qt.Dialog|QtCore.Qt.MSWindowsFixedSizeDialogHint|QtCore.Qt.WindowContextHelpButtonHint
)
box.setWhatsThis('This is the WhatsThis text...')
box.button(QtWidgets.QMessageBox.StandardButton.Ok).setText('Import')
res = box.exec_()

if res == QtWidgets.QMessageBox.StandardButton.Ok:
    print('User wants import')
else:
    print('User wants to cancel')

值得指出的是,question-mark-box/WhatsThis 文本可能不是您所希望的那样。 运行上面的例子,看看它是否符合你的需要。

干杯