FocusIn und FocusOut Event selber definieren.

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Blluecaspar
User
Beiträge: 2
Registriert: Freitag 12. April 2013, 09:17

Hallo euch allen,

ich möchte das FocusIn und das FocusOut Event selber definieren. Ich bekomm das zwar hin, möchte aber das, dass das eigentliche Focus Event jeweils auch noch ausgeführt wird. Tja, aber nur wie? In meinen Beispiel wird nämlich im QLineEdit sonst nicht richtig angezeigt, an welcher Stelle ich gerade meine Eingabe tätigen kann.

Code: Alles auswählen

from PySide.QtCore import *
from PySide.QtGui import *

import sys

class MyLineEdit(QLineEdit):

    def __init__(self, parent=None):
        super(MyLineEdit, self).__init__(parent)
        self.setFocusPolicy(Qt.StrongFocus)

    def focusInEvent(self, event):
        self.setStyleSheet("background: IndianRed;")

    def focusOutEvent(self, event):
        self.setStyleSheet("background: White;")

class MyMainForm(QMainWindow):
    
    def __init__(self, parent=None):
        super(MyMainForm, self).__init__(parent)
        self.setWindowTitle('Test')
        self.setFixedSize(170,42)
        self.createWidgets()
        self.placingWidgets()

    def createWidgets(self):
        self.firstEdit = MyLineEdit(self)
        self.secondEdit = MyLineEdit(self)
        
    def placingWidgets(self):
        panelWidget = QWidget(self)
        layout = QHBoxLayout(panelWidget)
        layout.addWidget(self.firstEdit)
        layout.addWidget(self.secondEdit)
        self.setCentralWidget(panelWidget)

def main():
    app = QApplication(sys.argv)
    form = MyMainForm()
    form.show()
    app.exec_()

if __name__ == '__main__':
    main()
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo und willkommen im Forum!

Das funktioniert genaus so, wie der Aufruf der __init__-Funktion der Elternklasse:

Code: Alles auswählen

def focusInEvent(self, event):
    ...
    super(MyLineEdit, self).focusInEvent(event)
    ....
Das Leben ist wie ein Tennisball.
Blluecaspar
User
Beiträge: 2
Registriert: Freitag 12. April 2013, 09:17

Funktioniert. Also richtig einfach die Lösung. Herrlich. Danke.
Antworten