inheritan的PyQt问题

2024-10-01 17:24:52 发布

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

我很难处理这个奇怪的问题。我在我的项目中放置了一些QLineEdit小部件,并尝试通过单击它们来选择(突出显示)所有的文本。我已经有了这个功能,但是我想把这个功能扩展到同一个QLineEdit父类的另一个类。我做了个小界面:

class EditInterface(QtGui.QLineEdit):
    def __init__(self, parent):
        super(EditInterface, self).__init__(parent)
        self.focus = False
        self.setFocusPolicy(QtCore.Qt.StrongFocus)

    def mousePressEvent(self, event):
        ret = QtGui.QLineEdit.mousePressEvent(self, event)
        if not self.focus:
            self.selectAll()
            self.focus=True
        else:
            self.deselect()
        return ret

    def focusInEvent(self,event):
        self.focus=True
        return QtGui.QLineEdit.focusInEvent(self,event)

    def focusOutEvent(self,event):
        self.focus=False
        return QtGui.QLineEdit.focusOutEvent(self,event)

现在一点也不管用。如果我只是这样做:

^{pr2}$

然后它就可以正常工作了,但是我希望它能够启用其他鼠标活动,而不是一次又一次地选择所有的东西。 问题似乎出在自我聚焦变量,但我对python没有经验,也不知道发生了什么。在我的项目张贴在这里我会很好地跳过一切。 提前谢谢

编辑:我发现了问题 这根本不是关于继承,而是关于事件。focusInEvent是在mousePressEvent之前调用的,因此无法调用selectAll()。在


Tags: 项目self功能eventfalsereturninitdef

热门问题