我正在尝试创建一个自定义类,以便每当鼠标按下事件发生时,QLabel应该更改为QLineEdit。所以,在搜索之后,我在Qt网站上找到了这个代码。但是,不幸的是,它不起作用。一个发布这个问题的用户已经接受了这段代码,但我对Qt和Python都是新手,所以我需要一些帮助。在
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())
更新:
我得到的错误是:
^{pr2}$
下面是一个如何让
Qlabel
切换到QLineEdit
的示例。或者,您可以使用QLineEdit.setPlaceholderText()
在字段留空时显示一些默认文本。这可能是另一个供您使用的选项(而且会更简单)。在相关问题 更多 >
编程相关推荐