如何在第一次点击后将可点击的 QLineEdit 变为普通的?
How to turn a Clickable QLineEdit to a normal one after first click?
我有一个可点击的行编辑:
> class ClickableLineEdit(QtGui.QLineEdit): #This is the Class which let you to have a clickable QLineEdit
clicked = QtCore.pyqtSignal()
def mousePressEvent(self, event):
self.clicked.emit()
QtGui.QLineEdit.mousePressEvent(self, event)
点击后清除默认文本:
self.lineEdit = ClickableLineEdit(Form)
self.lineEdit.setText(_translate("Form", "0.14286", None)) #Carrying the default value of QLineEdit.
self.lineEdit.clicked.connect(self.lineEdit_refrac.clear)
如何更改我的代码以在第一次单击后将 QlineEdit 的行为设置为正常?
这意味着清除lineEdit后,现在我希望用户可以点击输入文本进行编辑。
在这种情况下,我认为没有必要实现信号,只需要使用标志。
class LineEdit(QtGui.QLineEdit):
def __init__(self, *args, **kwargs):
super(LineEdit, self).__init__(*args, **kwargs)
self.flag = False
def mousePressEvent(self, event):
if not self.flag:
self.clear()
self.flag = True
QtGui.QLineEdit.mousePressEvent(self, event)
# ...
self.lineEdit = LineEdit(Form)
self.lineEdit.setText(_translate("Form", "0.14286", None)) #Carrying the default value of QLineEdit.
# self.lineEdit.clicked.connect(self.lineEdit_refrac.clear)
在第一次点击QLineEdit时调用的方法中,可以断开连接。所以变成这样:
self.lineEdit.clicked.connect(self.lineEdit_refrac.clear)
进入:
self.lineEdit.clicked.connect(self.clear_line_edit)
def clear_line_edit(self):
self.lineEdit_refrac.clear() # does what you wanted
self.lineEdit.clicked.disconnect(self.clear_line_edit) # then ensures the click does not call this method anymore
我有一个可点击的行编辑:
> class ClickableLineEdit(QtGui.QLineEdit): #This is the Class which let you to have a clickable QLineEdit
clicked = QtCore.pyqtSignal()
def mousePressEvent(self, event):
self.clicked.emit()
QtGui.QLineEdit.mousePressEvent(self, event)
点击后清除默认文本:
self.lineEdit = ClickableLineEdit(Form)
self.lineEdit.setText(_translate("Form", "0.14286", None)) #Carrying the default value of QLineEdit.
self.lineEdit.clicked.connect(self.lineEdit_refrac.clear)
如何更改我的代码以在第一次单击后将 QlineEdit 的行为设置为正常?
这意味着清除lineEdit后,现在我希望用户可以点击输入文本进行编辑。
在这种情况下,我认为没有必要实现信号,只需要使用标志。
class LineEdit(QtGui.QLineEdit):
def __init__(self, *args, **kwargs):
super(LineEdit, self).__init__(*args, **kwargs)
self.flag = False
def mousePressEvent(self, event):
if not self.flag:
self.clear()
self.flag = True
QtGui.QLineEdit.mousePressEvent(self, event)
# ...
self.lineEdit = LineEdit(Form)
self.lineEdit.setText(_translate("Form", "0.14286", None)) #Carrying the default value of QLineEdit.
# self.lineEdit.clicked.connect(self.lineEdit_refrac.clear)
在第一次点击QLineEdit时调用的方法中,可以断开连接。所以变成这样:
self.lineEdit.clicked.connect(self.lineEdit_refrac.clear)
进入:
self.lineEdit.clicked.connect(self.clear_line_edit)
def clear_line_edit(self):
self.lineEdit_refrac.clear() # does what you wanted
self.lineEdit.clicked.disconnect(self.clear_line_edit) # then ensures the click does not call this method anymore