python - 将 QLineEdit 设置为只读但仍接受 Drops

标签 python pyqt pyqt4 qlineedit

我注意到,当我将 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/

相关文章:

python - Django 1.6.5 和 1.5.4 Tango 与 django

python - 如何在 QWidget 中跟踪 matplot Canvas 上的鼠标?

python - PyQt4 - 将 slider 的范围链接到绘图轴的范围

qt - 关闭主窗口并打开一个新窗口 - PyQt

python - 参数 1 具有意外类型 'Ui_mainWindow'

python - PyQt4:QSpinBox 字符串

python - 当详细信息肯定在数据库中时,验证电子邮件和散列密码总是返回 None

python - 每次分类器的准确度差异?

python - 有太多专门的异常;这是一个问题吗?

python - QTableWidgetItem 返回项目类型(pyqt)