如何获取修改后的QSpinBox的objectName?

时间:2017-03-29 22:21:53

标签: python c++ pyqt4 qt-designer

我想跟踪用户在我的自定义应用中修改公司的预测。 我使用qt designer和PyQt4创建它,并且我使用QSpinBox作为数量(控制值范围的简单方法和仅​​将数字屏蔽为数字)。 我遇到的问题是当我想要获得触发我的功能的QSpinBox时。 此时它正在使用valueChanged.connect触发,但可能正在使用其他任何东西。 我可以在spinbox中获取int而不是spinbox的名字。 先谢谢你的帮助!

QSpinBox元素

self.Item = QtGui.QSpinBox(self.centralwidget)  
self.Item.setObjectName(_fromUtf8("ItemName"))

触发

self.Item.valueChanged.connect(self.foo)

它调用的功能

def foo(self,obj):  
    sender = MainWindow.sender()  
    print sender.objectName()

在这种情况下,“MainWindow”是我的QtCore.QObject

1 个答案:

答案 0 :(得分:0)

AS标记为C ++。我在C ++和pyQt4中都在回答。我从未在pyQt4工作过。所以请原谅我的语法。

在“valueChanged广告位中,使用QObject::sender()获取触发它的旋转框。

然后调用“objectName()”。

QObject* obj = sender();
QString objName = obj->objectName();

可能在python:

 sender = QtCore.QObject.sender()
 str = sender.objectName()