使用颜色标签复制Maya QLineEdits

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

我正在尝试使用在Maya中看到的控件创建/复制QLineEdit控件(该控件的左侧有一个颜色标签,用于指示是否已键入键)

我能够在一定程度上复制它,但是同时存在一些问题:

  • 请参见附件,在我的图标和QLineEdit的最左端之间,有一个小的间隙
  • 尽管实际图像以10x16像素缩放,但图标大小并不像我期望的那样呈矩形。

这里是我的QLineEdit的快速代码示例:

my_icon = QtGui.QPixmap('full_keyed.png')
self.ui.positionXLineEdit.addAction(my_icon, QtWidgets.QLineEdit.LeadingPosition)

因此,对我而言,实现Maya所希望达到的目标更好吗?

enter image description here

python maya pyside2
1个回答
1
投票

通过使用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,第二行填写实际的输入字段和“键控”标记。

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