如何使用setText设置和获取“注释”文本?

时间:2019-07-08 08:30:59

标签: python pyside maya qabstractbutton

我正在尝试将字符串数据存储在QAbstractButton.text()中。

为什么?

我想在text()本身中显示短名称,但是能够通过代码通过text()“ comment”来调用长名称。

您可以在QT Designer中编写“注释”,但是我无法在Python中复制它。 查看记事本中的代码,似乎在文本字符串本身内创建了“注释”文本:

<property name="text">
  <string extracomment="toast">Select object and click here</string>

我目前在python中拥有的是:

Xsl = cmds.ls(sl=1)[0]
Xbutton.setText(Xsl)

我还如何设置和获取本文的评论部分? 任何建议将不胜感激!

2 个答案:

答案 0 :(得分:0)

如果您想向小部件添加额外的数据,为什么不只是对其进行子类化并创建自己的数据呢?

http://127.0.0.1:4567/col10?where=var0053==[1130,1113] 
## returns just the objects with var0053 = 1113

现在,您可以像普通按钮一样继续使用class MyCustomButton(QtWidgets.QPushButton): def __init__(self, parent=None): super(MyCustomButton, self).__init__(parent) self.my_variable = None ,还可以将所需的内容添加到MyCustomButton中。

答案 1 :(得分:0)

我发现每个对象都包含windowTitle的变量。如果这不是主窗口,则窗口标题通常留为空白,因此我可以在此处存储数据。

当然,这可能不是最干净的方法,但现在可以使用。

Green Cell的子类化很可能是解决此问题的最佳方法。但是,我主要是使用Qt Designer构建UI,并且主要希望将所有编辑都保留在该包装中。

def store_selected_node_on_button(self):
    """
    Changes the text of a given button to store an object's name
    As the button isn't a window, I can set the window title to store the long name of the selected object.        
    :return: None
    """
    button = self.sender()
    sl = cmds.ls(sl=1, long=True)
    if not sl:
        button.setText("Select object and click here")
        button.setWindowTitle("")
    else:
        button.setText(sl[0].split("|")[-1])
        button.setWindowTitle(sl[0])

    return