I am trying to create a custom class so that whenever a mouse press event occurs, a QLabel should change to a QLineEdit. So, after searching, I found this code on a Qt website. But, unfortunately, it is not working. A user who posted this question had accepted this code as working, but I am new to Qt, as well as Python, so I need some help.
class nameDisplay(QtGui.QLabel):
def __init__(self,buddyList,parent=None):
QtGui.QLabel.__init__(self, parent)
self.buddyList = buddyList
def mousePressEvent(self, event):
print 'mousePressEvent'
self.buddyList.username.hide()
self.buddyList.usernameInput = QtGui.QLineEdit(self.buddyList)
self.buddyList.usernameInput.setGeometry(QtCore.QRect(120, 10, 121, 20))
self.buddyList.usernameInput.setText(self.buddyList.username.text())
self.buddyList.usernameInput.selectAll()
self.buddyList.usernameInput.show()
self.connect(self.buddyList.usernameInput,QtCore.SIGNAL("returnPressed()"),self.editingFinish)
def editingFinish(self):
self.buddyList.usernameInput.hide()
self.buddyList.username.show()
self.buddyList.username.setText(self.buddyList.usernameInput.text())
Update:
The error I am getting is:
# Error: line 1: __init__() takes at least 2 arguments (1 given)
# Traceback (most recent call last):
# File "<maya console>", line 22, in <module>
# TypeError: __init__() takes at least 2 arguments (1 given) #