Seite 1 von 1

PyQt5 | Fenster wird nicht angezeigt

Verfasst: Sonntag 28. Mai 2017, 16:58
von N4SONIC
Hallo :)

Ich versuche mit PyQt5 ein Fenster zu erstellen, wenn ich es compiliere dann läuft es nur im Hintergrund.

Was mache ich falsch ? :?

Code: Alles auswählen

import sys
from PyQt5 import QtWidgets

if __name__ == "__main__":
	app = QtWidgets.QApplication(sys.argv)
	w = QtWidgets.QWidget()
	w.resize(300, 300)
	w.move(100, 100)
	w.setWindowTitle("Test")
	w.show()
	print("Fenster erstellt!")
	sys.exit(app.exec_())
Bild

Re: PyQt5 | Fenster wird nicht angezeigt

Verfasst: Sonntag 28. Mai 2017, 18:45
von BlackJack
@N4SONIC: Unter Windows muss das mit pythonw.exe ausgeführt werden. Dazu sollte es reichen, dass die Dateiendung *.pyw statt *.py ist.

Re: PyQt5 | Fenster wird nicht angezeigt

Verfasst: Sonntag 28. Mai 2017, 22:12
von N4SONIC
BlackJack hat geschrieben:@N4SONIC: Unter Windows muss das mit pythonw.exe ausgeführt werden. Dazu sollte es reichen, dass die Dateiendung *.pyw statt *.py ist.
Habe es gemacht, wird bei mir auch im "Task Manager" als pythonw.exe angezeigt. Und die Datei habe ich als test.pyw gespeichert.

Woran könnte es noch liegen ? :?

Re: PyQt5 | Fenster wird nicht angezeigt

Verfasst: Montag 29. Mai 2017, 04:24
von __deets__
Vielleicht hilft ein tatsächliches Window zu verwenden? Also QMainWindow statt ein Widget.

Ist aber nur geraten.

Re: PyQt5 | Fenster wird nicht angezeigt

Verfasst: Montag 29. Mai 2017, 12:33
von N4SONIC
__deets__ hat geschrieben:Vielleicht hilft ein tatsächliches Window zu verwenden? Also QMainWindow statt ein Widget.

Ist aber nur geraten.
Hat auch nicht Funktioniert.

Re: PyQt5 | Fenster wird nicht angezeigt

Verfasst: Montag 29. Mai 2017, 12:43
von BlackJack
@N4SONIC: Hast Du eventuell mehrere Monitore und 100,100 liegt aus irgendwelchen Gründen ausserhalb des sichtbaren Bereichs eines virtuellen Desktops? Und das Programm muss ja auch in der Taskleiste auftauchen‽

Re: PyQt5 | Fenster wird nicht angezeigt

Verfasst: Montag 29. Mai 2017, 13:05
von N4SONIC
BlackJack hat geschrieben:@N4SONIC: Hast Du eventuell mehrere Monitore und 100,100 liegt aus irgendwelchen Gründen ausserhalb des sichtbaren Bereichs eines virtuellen Desktops? Und das Programm muss ja auch in der Taskleiste auftauchen‽
Nein habe ich nicht. Und habe w.move auf 0 gesetzt sehe dann auch nichts. Es wird nicht mal unten an der Taskleiste angezeigt, aber im Task Manager unter Details.

Re: PyQt5 | Fenster wird nicht angezeigt

Verfasst: Montag 29. Mai 2017, 16:02
von bb1898
Ich habe das Programm hier aus dem Code-Fenster kopiert ("Alles auswählen", Ctrl-C und dann in IDLE eingefügt). Jetzt habe ich ein Programm, das voll ist mit illegalen Zeichen (C2 A0 im Hex-Viewer). Ich vermute sehr stark, dass das eine einfache Folge des Kopierens aus dem Code-Fenster ist und mit dem Problem nichts zu tun hat. Richtig oder falsch?

Wenn ich diese Zeichen allerdings aus dem Programm entferne, läuft es brav, zeigt mir ein leeres Fenster mit dem Titel "Test" und wenn ich es aus IDLE oder vom Konsolenfenster aus starte, wird dort auch "Fenster erstellt!" ausgegeben.

Wie startest Du das Programm? (Und was meintest Du in Deinem ersten Beitrag mit "wenn ich es compiliere"?) Probiere auf jeden Fall mal den Start aus einer Eingabeaufforderung, am besten mit "py -3 test.pyw". Dann siehst Du ggf. die Fehlermeldungen.

@__deets__: Ein PyQt5-Programm muss kein QMainWindow haben, QWidget als einziges Fenster tut es auch, wenn man Menü und Statuszeile nicht braucht.

@BlackJack: .pyw ist doch nicht zwingend - man kriegt bei .py halt das Konsolenfenster, das stören kann; hier zeigt es aber sogar die Schlussmeldung an. Und solange man in der Testphase aus der Eingabeaufforderung heraus startet, ist es sowieso egal.

Re: PyQt5 | Fenster wird nicht angezeigt

Verfasst: Montag 29. Mai 2017, 16:37
von N4SONIC
Was fär Zeichen meinst du ? Mit Compilieren meinte ich wenn ich das Programm starte.

Re: PyQt5 | Fenster wird nicht angezeigt

Verfasst: Montag 29. Mai 2017, 18:24
von bb1898
Ich meine unsichtbare Zeichen, die im Hex-Viewer als C2 A0 dargestellt werden. Bemerkt habe ich das, weil beim ersten Ausführungsversuch unter IDLE eine entsprechende Fehlermeldung kam und das erste dieser Zeichen rot markiert wurde. Wie schon gesagt, ich würde eher annehmen, dass dieses Zeugs beim Kopieren aus dem Codefenster in meine Datei gekommen ist, dann müsste es Dich nicht interessieren. Nur, ohne das läuft das Programm bei mir.

Deshalb noch mal die Frage: wie startest Du das Programm? Aus einer Entwicklungsumgebung heraus (Dein Screenshot legt das nahe)? Durch Doppelklick im Explorer? Letzteres ist eine bewährte Methode, alle Fehlermeldungen eines GUI-Programms zu unterdrücken und dann rätseln zu müssen, warum nichts kommt. Ersteres sollte Fehlermeldungen nicht unterdrücken, aber nicht jede Entwicklungsumgebung verträgt sich mit jeder GUI-Bibliothek (tkinter und IDLE z.B. nicht).

Re: PyQt5 | Fenster wird nicht angezeigt

Verfasst: Montag 29. Mai 2017, 23:33
von N4SONIC
Habe es über über Atom laufen lassen und es hat Funktioniert. Danke :)