hoffe der Betreff irritiert Euch nicht zu sehr!
Ich habe zu meinem Problem ein Beispiel eingefügt, welches dies wieder gibt.
Folgendes, bei diesem Beispiel klickt man zuerst auf das leere Fenster, das eine MessageBox öffnet, um bei 'Yes' ein Folgeereignis auszulösen.
Wenn das Fenster der MessageBox geöffnet ist, veränder sich mein Courser und der Fokus ist auf dem leeren Fenster statt auf der MessageBox.
Code: Alles auswählen
import sys
from PyQt5.QtCore import (
Qt,
QEvent
)
from PyQt5.QtWidgets import (
QApplication,
QMainWindow,
QLabel,
QMessageBox,
QHBoxLayout
)
class TestClass(QMainWindow):
def __init__(self):
super().__init__()
# create eventFilter
self.installEventFilter(self)
self.show()
def nextStep(self):
if self.ask():
container = QLabel(self)
hb = QHBoxLayout(self)
hb.addWidget(QLabel('<<< Welcome >>>'))
container.setLayout(hb)
self.setCentralWidget(container)
else:
self.close()
def ask(self):
mb = QMessageBox
r = mb.question(None,'', "Start application?", mb.Yes | mb.No)
if r == mb.Yes:
return True
else:
return False
def mousePressEvent(self, event):
if event.type() == QEvent.MouseButtonPress:
if event.button() == Qt.LeftButton:
self.pressPos = event.pos()
self.nextStep()
super().mousePressEvent(event)
def main():
App = QApplication(sys.argv)
obj = TestClass()
sys.exit(App.exec())
if __name__ == '__main__':
main()
Grüße Nobuddy