Hans-Peter Jansen schrieb am Sonntag, 10. Oktober 2021 um 18:39:52 UTC+2: Oh Manno Mann, Hans-Peter Ich weiss nicht, wie ich mich bei Dir bedanken kann? Wie die Schwizer sagen, ich bin Dir tuuusig Mal dankbar.
QMainWindows sind speziell im Umgang mit Widgets:
Wenn Qt so was raus haut, dann sollte man dem auf den Grund gehen: QWidget::setLayout: Attempting to set QLayout "" on MainWindow "", which already has a layout
Das Verhalten Deiner geänderten Version ist genau das, was ich vorgehabt habe, zu programmieren und es mir nicht gelang. Aber wie sollte ich darauf kommen, dass bei QMainWindow der Hase ein bisschen anders läuft? Ohne Deine Erklärung wäre ich nicht in 1000 Jahre darauf gekommen. Ich programmiere mit Python seit etwa 10 Monaten. Manche Zusammenhänge sind mir noch nicht so ganz geläufig, wie die Sache mit Parent und Co. und jetzt QMainWindow Spezialitäten.
Die richtige Initialisierung des keypad Wertes beim wiederholten Aufruf überlasse ich Dir als Hausaufgabe..
Die richtige Initialisierung habe ich nicht verstanden, was Du damit meinst. Ich habe aber gesehen, wenn man auf das Feld geklickt hat und das Keypyd-Fenster geöffnet wurde, kann man noch einmal in das Feld klicken und dort auch noch Character mit dem normalen Keyboard eintippen, was nicht der Sinn der Sache ist. Daher habe ich in der Metode "show_keypad_window" das Edit-Feld mit "self.cle.setReadOnly(True)" gesperrt und bei "closeEvent" wieder freigegeben. Ich denke, dass ich damit diesen Fehler behoben habe. Ich muss noch weitere Tests durchführen, um vielleicht eine nicht geddachte Version zu erwischen.
Ich hoffe, das bringt Dich erst mal weiter.
Nicht nur weitergebracht, sondern auch die Augen geöffnet. Vieeeelen Dank!
Rechnung folgt. ;-)
Oh Oh, damit hatte ich nicht gerechnet:-) Gruss Mohsen