Seite 1 von 1

QInputDialog Methoden überschreiben

Verfasst: 31. Mai 2019 10:29
von okliw993
Hallo zusammen,

ich bin neu hier und beschäftige mich seit ein paar Wochen mit Python3 und PyQt5. Um eine Tastatureingabe zu realisieren, nutze ich QInputDialog. Nun zu meiner Frage: Ist es möglich, dass man die Methoden der Buttons (OK, Cancel), welche im QInputDialog - Fenster automatisch erzeugt werden, überschreiben kann?
Über ein paar nützliche Hinweise oder Befehle würde ich mich sehr freuen!

Gruß, okliw993

Re: QInputDialog Methoden überschreiben

Verfasst: 31. Mai 2019 15:07
von rudi25
Hallo,
du kannst alles machen was du willst, löschen, umbenennen, neue Funkionen definieren usw. usw.
Weitere Infos zu PyQt5 siehe https://www.youtube.com/results?search_ ... 5%2C+teil4

Re: QInputDialog Methoden überschreiben

Verfasst: 3. Juni 2019 10:27
von okliw993
Hallo,
Zuerst danke für den Link. Ich habe mir die Videos angeschaut und konnte einiges in meinem Code verbessern. Dennoch weis ich immer noch nicht so richtig wie ich das Fenster/ die Standartbuttons ansprechen/ überschreiben kann.
Ich öffne das Fenster mit:

x, result = QInputDialog.getText(self, 'Fenstername', 'Fenstertext')

Bei von mir designten Fenstern ist das kein Problem. Aber dieses ist ja Bereits vordefiniert..
Vielleicht hast du dazu ja noch eine Idee?

Gruß, okliw993

Re: QInputDialog Methoden überschreiben

Verfasst: 3. Juni 2019 15:33
von rudi25
Hallo,
ohne zu sehen was Du gemacht hast, kann man nichts sagen.
In QT erfolgt normalerweise die Kommunikation zwischen den Objekten (Widgets) mittels SIGNAL und SLOT.
Am besten suchst du im Internet nach PyQt5 Signal + Slot oder du wendest dich an das Forum https://www.python-forum.de/viewforum.php?f=24

Du fängst jetzt mit Python3 und PyQt5 an. Das sind zwei Computersprachen und eine mächtige C++ Bibliothek (QT).
Das ist sehr viel Arbeit.

Re: QInputDialog Methoden überschreiben

Verfasst: 4. Juni 2019 09:48
von okliw993
Ich habe es jetzt hinbekommen den Cancel-Button anzusprechen. Und zwar lasse ich in einer while-Schleife die Variable i bis 1000000 laufen. Sobald Cancel gedrückt wird, wird i auf 1000001 gesetzt und die while-Schleife unterbricht. Das ganze habe ich wie folgt gemacht:

Code: Alles auswählen

...
	while i < 1000000:
		Nr, result = QInputDialog.getText(self, 'Fenstername', 'Fenstertext')
		.....
		if not result:
			i = 1000001
Danke für deine Hilfe. Im Rahmen meines Projektes muss ich mich leider dieser (großen) Aufgabe stellen.

Mfg, okliw993