Guten Tag Python-Forum,
ich bin ein Python-Neuling, deshalb klingt diese Frage vllt. blöd:
WIe öffnet man durch Doppelklicken eine selbstprogrammierte GUI, wenn diese aus zwei Modulen besteht (GUI.py und SQLManager.py). GUI.py benötigt SQLManager.py um auf eine Datenbank zuzugreifen. Wenn ich GUI.py in Spyder laufen lasse, klappt alles wunderbar. Wenn ich die GUI.py durch einen Doppelklick öffne, geht das Hauptfenster auf, aber ich kann nicht auf die Datenbank zugreifen.
Ich denke ich muss beide (.py) -Dateien irgendwie verbiden. Aber wie geht das?
PS: SQLManager.py ist natürlich in GUI.py durch eine Importanweisung eingebunden.
Wie GUI öffnen?
@Ralf_90: Das hängt vom Betriebssystem beziehungsweise vielleicht auch vom Programm an in dem Du den Doppelklick auf die Datei durchführst. Wobei das in den allermeisten Fällen eigentlich so funktionieren sollte wie Du das beschreibst.
Unter Linux beispielsweise würde ich wahrscheinlich eine *.desktop-Datei anlegen. Da kann man dann konfigurieren was das aktuelle Arbeitsverzeichnis ist, und auch einen Namen und ein Icon für die Anwendung festlegen.
Unter Linux beispielsweise würde ich wahrscheinlich eine *.desktop-Datei anlegen. Da kann man dann konfigurieren was das aktuelle Arbeitsverzeichnis ist, und auch einen Namen und ein Icon für die Anwendung festlegen.
@Ralf_90: Im Kommandozeilenfall, was bedeutet „klappts auch nicht” denn genau? Da muss dann ja irgendeine Fehlermeldung kommen — welche?
Ich habe den Fehler gefunden und behoben: Wenn aus einem LineEdit der eingegebene Text mittels .text() ausgelesen wird. so muss dieser Text zuerst mittels str() in einen String umgewandelt werden bevor die Methode strip() darauf angewendet wird. PyQt4 kennt anscheinend kein strip().
Ich konnte jetzt nicht nachschlagen, nehme aber stark an, dass LineEdit.text() einen QString zurückgibt, und der hat andere Methoden als ein Python-String. Leider ist zumindest von der Riverbankcomputing-Seite aus nur noch eine ziemlich unvollständige Dokumentation für PyQt4 zu haben, das ist ärgerlich. Für PyQt5 ist die "Class Reference", die hier zuständig wäre, weiterhin vorhanden. Umsteigen wäre eine Option, gerade wenn Du erst anfängst.Ralf_90 hat geschrieben:Ich habe den Fehler gefunden und behoben: Wenn aus einem LineEdit der eingegebene Text mittels .text() ausgelesen wird. so muss dieser Text zuerst mittels str() in einen String umgewandelt werden bevor die Methode strip() darauf angewendet wird. PyQt4 kennt anscheinend kein strip().
Was das Starten eines PyQt-GUI-Programms unter Windows betrifft: Starten aus der Kommandozeile sollte eigentlich Fehlermeldungen liefern, wenn das Programm nicht läuft. Ich kriege die aber immer nur, wenn ich den Python-Launcher benutze. Also nicht
D:\meinepythonskripte>zeugs.py
sondern
D:\meinepythonskripte>py -3 zeugs.py
Die erste Variante liefert bei einem hinreichend fehlerhaften Programm gar keine Reaktion. Verstehe ich nicht.
Stimmt für die .pyw-Dateien, und so nenne ich meine GUI-Programme meistens. Mir war bisher nicht klar, dass pythonw.exe offensichtlich nicht nur kein Konsolenfenster öffnet, sondern nichts dorthin ausgibt, auch wenn es aus einem Konsolenfenster heraus gestartet wird. Wieder was gelernt, danke.Sirius3 hat geschrieben:@bb1898: es kommt darauf an, mit was .py-Dateien unter Windows verknüpft sind. Wahrscheinlich bei Dir mit pythonw.exe, das kein Konsolenfenster benutzt und damit alle Tracebacks unsichtbar bleiben.