添加对 QLineEdit 的点击

Eri*_*Bkc 2 python qt qlineedit

我正在为 QLineEdit 设置 click() 事件,我已经成功做到了。但我想在单击 QLine Edit 时返回到 Mainwindow,因为我需要 Mainwindow 中的数据来进一步处理数据。但我没能让它回去,也没有引用Mainwindow作为父级,希望有人能指出。太感谢了。

MainWindow
{

...


self.tc = MyLineEdit(self.field[con.ConfigFields.VALUE])#self.tc = wx.TextCtrl(self.parent, -1, str(field[con.ConfigFields.VALUE]), pos=(x+220, y-3), size=(200, -1))

...

}


class MyLineEdit(QtGui.QLineEdit):

    def __init__(self, parent=MainWindow):
        super(MyLineEdit, self).__init__(parent)
        #super(CustomQLineEidt, self).__init__()


    def mousePressEvent(self, e):
        self.mouseseleted()

    def mouseseleted(self):
        print "here"
        MainWindow.mousePressEvent
Run Code Online (Sandbox Code Playgroud)

ste*_*225 5

我使用以下方法连接任何方法作为单击事件的回调:

class ClickableLineEdit(QLineEdit):
    clicked = pyqtSignal() # signal when the text entry is left clicked

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton: self.clicked.emit()
        else: super().mousePressEvent(event)
Run Code Online (Sandbox Code Playgroud)

使用方法:

textbox = ClickableLineEdit('Default text')
textbox.clicked.connect(someMethod)
Run Code Online (Sandbox Code Playgroud)

特别针对操作:

self.tc = ClickableLineEdit(self.field[con.ConfigFields.VALUE])
self.tc.clicked.connect(self.mouseseleted)
Run Code Online (Sandbox Code Playgroud)