我正在尝试使用在Maya中看到的控件创建/复制QLineEdit控件(该控件的左侧有一个颜色标签,用于指示是否已键入键)
我能够在一定程度上复制它,但是同时存在一些问题:
这里是我的QLineEdit的快速代码示例:
my_icon = QtGui.QPixmap('full_keyed.png')
self.ui.positionXLineEdit.addAction(my_icon, QtWidgets.QLineEdit.LeadingPosition)
因此,对我而言,实现Maya所希望达到的目标更好吗?
通过使用widgetHierarchy.py,您可以发现ChannelBox中的那些“键控”字段是QTableView的一部分,因此是QStyledItemDelegates。
恐怕我没有与之合作的个人经验,但是经过一番挖掘之后,看起来像那些QStyledItemDelegates就是您要为控件建模的对象。看看查询QStyledItemDelegates itemData()时输出的内容:
{0: u'Translate X', 2: u'Translate X', 3: u'Translate X', 6: <PySide2.QtGui.QFont( "smallPlainLabelFont,12,-1,5,50,0,0,0,0,0" ) at 0x7f8d2070ab48>, 7: 66, 8: <PySide2.QtGui.QBrush(QColor(ARGB 1, 0.266667, 0.266667, 0.266667),SolidPattern) at 0x7f8d2070ab00>, 9: <PySide2.QtGui.QBrush(QColor(ARGB 1, 0.733333, 0.733333, 0.733333),SolidPattern) at 0x7f8d2070ac68>}
{0: u'0 ', 2: u'0 ', 3: u'0 \n\nKeyed On Frame', 6: <PySide2.QtGui.QFont( "smallPlainLabelFont,12,-1,5,50,0,0,0,0,0" ) at 0x7f8d2070ac68>, 7: 65, 8: <PySide2.QtGui.QBrush(QColor(ARGB 1, 0.803922, 0.152941, 0.160784),SolidPattern) at 0x7f8d2070ab48>, 9: <PySide2.QtGui.QBrush(QColor(ARGB 1, 0, 0, 0.00784314),SolidPattern) at 0x7f8d2070a3f8>}
第一行代表“翻译X”标签的itemData,第二行填写实际的输入字段和“键控”标记。