我注意到,当我将 QLineEdit
设置为只读时,这不允许我的小部件接受拖放。
class CustomLineEdit(QtGui.QLineEdit):
def __init__(self):
super(CustomLineEdit, self).__init__()
self.setReadOnly(True)
self.setAcceptDrops(True)
def dropEvent(self, event):
input_text = event.mimeData().text()
if input_text.endswith('Stalk'):
self.setText(input_text.split(' ')[0])
最佳答案
dragEnterEvent 方法允许您启用 dropEvent,默认情况下,当 QLineEdit 为只读时,该方法不接受该事件。解决方案是重写该方法并接受事件。
class CustomLineEdit(QtGui.QLineEdit):
def __init__(self):
super(CustomLineEdit, self).__init__()
self.setReadOnly(True)
self.setAcceptDrops(True)
<b>def dragEnterEvent(self, event):
event.acceptProposedAction()</b>
def dropEvent(self, event):
input_text = event.mimeData().text()
if input_text.endswith("Stalk"):
values = input_text.split(" ")
if values:
self.setText(values[0])
欲了解更多信息,请查看Drag-and-drop documentation .
关于python - 将 QLineEdit 设置为只读但仍接受 Drops,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60012363/