将QLineEdit设置为只读,但仍接受删除

2024-09-30 05:32:47 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: textselfeventtrueinputinit部件def
1条回答
网友
1楼 · 发布于 2024-09-30 05:32:47

dragEnterEvent方法,允许您启用dropEvent,在QLineEdit默认情况下,当QLineEdit为只读时,dropEvent不接受该事件。解决方案是重写该方法并接受事件

class CustomLineEdit(QtGui.QLineEdit):
    def __init__(self):
        super(CustomLineEdit, self).__init__()
        self.setReadOnly(True)
        self.setAcceptDrops(True)

    def dragEnterEvent(self, event):
        event.acceptProposedAction()

    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

相关问题 更多 >

    热门问题