PySide2, кнопка не получает setStyleSheets
Попытка получить некоторые основы PySide2 внутри Maya, и сейчас я сталкиваюсь с проблемой, эта кнопка не получает translateButtonX.setStyleSheet(...)
который я хочу, он просто игнорирует это. Я попытался отладить его и заметил, что, если я установил window.setStyleSheet(...)
не из изображения, из цвета RGB, например, тогда все работает. Кто-нибудь знает, что мне не хватает?
import maya.cmds as cmds
from PySide2 import QtCore
from PySide2 import QtGui
from PySide2 import QtWidgets
import maya.OpenMayaUI as omui
try:
from shiboken import wrapInstance
except:
from shiboken2 import wrapInstance
def getMayaWindow():
pointer = omui.MQtUtil.mainWindow()
if pointer is not None:
return wrapInstance(long(pointer), QWidget)
######################################################################
def constraintMaster_UI():
objectName = 'PyConstraintMasterWin'
#check if ui already exists or not
if cmds.window('PyConstraintMasterWin', exists=1):
cmds.deleteUI('PyConstraintMasterWin',wnd=1)
#create window#
parent = getMayaWindow()
window = QtWidgets.QMainWindow(parent)
window.setObjectName(objectName)
window.setWindowTitle('Constraint Master')
#create main widget#
mainWidget = QWidget()
window.setCentralWidget(mainWidget)
QtWidgets.QStyleFactory.create('Windows')
#Create main vertical layout#
verticalLayout = QtWidgets.QVBoxLayout(mainWidget)
imagePath = cmds.internalVar(upd=1) + 'icons/test.png'
window.setStyleSheet('background-image:url(' + imagePath +
');border:solid black 1px;')
#create the translate layout#
translateLayout = QtWidgets.QHBoxLayout()
verticalLayout.addLayout(translateLayout)
#create translate label#
translateLabel = QtWidgets.QLabel('Translate:')
translateLayout.addWidget(translateLabel)
translateButtonX = QtWidgets.QPushButton('X')
translateLayout.addWidget(translateButtonX)
translateButtonX.setStyleSheet('background-color:rgb(0, 210,
255);border:white 1px;')
#show the window
window.show()
constraintMaster_UI()
С наилучшими пожеланиями!
0 ответов
Пробовал минимальный пример и как цвет, так и изображение работает. Возможно, поскольку это плагин Maya, путь к изображению не существует, попробуйте получить абсолютный путь, чтобы вы были уверены:
imagePath = os.path.abspath(cmds.internalVar(upd=1) + 'icons/test.png')
тогда вам будет все равно, если плагин будет запущен из другого каталога.