Seite 1 von 1
Programmstart mit PyQt und Windows XP
Verfasst: Montag 18. Mai 2009, 18:29
von halux
Hallo,
eine evtl. dumme Frage ! ?
Wenn ich mein Progrämmchen (PyQt QWidget Fenster ) mit Hilfe einer Verknüpfung auf dem Desktop oder direkt über " Ausführen " starten möchte, erscheint kurz ein Fenster und dann wird es sofort wieder geschlossen.
Befehl zum Ausführen eigendlich normal :
@"C:\Python26\pythonw" "C:\Dokumente und Einstellungen\Administrator\Desktop\privat\Stahlaufmass-01\test11.py"
Was mach ich falsch ???
Verfasst: Montag 18. Mai 2009, 18:34
von Dill
wie sieht denn eingentlich dein code aus?
starte den mal aus der console mit python (nicht pythonw), dann siehst du auch die fehlermeldung.
Verfasst: Montag 18. Mai 2009, 18:34
von snafu
Vermutlich liegt es an deinem Test-Skript. Poste das doch mal bitte.
Verfasst: Montag 18. Mai 2009, 19:15
von halux
hmm ...
der meckert die Umlaute an, obwohl mit
# -*- coding:utf-8 -*- encodiert ! ??
Verfasst: Montag 18. Mai 2009, 20:07
von snafu
Na, dann lass es halt...
Verfasst: Montag 18. Mai 2009, 20:27
von cofi
Tjoa ... vielleicht ist deine Datei eben nicht utf-8 kodiert. Aber meine Kristallkugel hat grad Schlieren.
Verfasst: Dienstag 19. Mai 2009, 06:03
von halux
... nicht so ungeduldig,
aber mit dem posten von 600 zeilen ist das nicht so einfach, geht nicht !
hier aber mein Programmkopf :
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: cp1252 -*-
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
icon_path ="../icon_22x22/"
icon_biegeliste_path ="/icon_48x48_biegeformen/"
und hier die Eingabe der Umlaute, wie diese überall im Programm stehen :
Code: Alles auswählen
self.l_laenge = QtGui.QLabel("<font color = black size = 5>" + u"Länge/Abwicklung : " + "</font>", self.innenrahmen_bv_box)
self.l_laenge.setGeometry(5,122,150,50)
Verfasst: Dienstag 19. Mai 2009, 06:43
von BlackJack
Und wie sieht nun die Fehlermeldung aus, wenn Du das auf der Konsole startest?
Verfasst: Dienstag 19. Mai 2009, 06:52
von halux
Non-ASCII character '\xe4' in file ... on line 114, but no encoding declared
hier die Zeile 114 :
Verfasst: Dienstag 19. Mai 2009, 07:16
von Traggger
Der mag das "ä" nicht!! Is bei mir auch ständig der Fall, Python mag Umlaute noch nicht mal in Kommentaren...
da ich aber meist in Englisch programmiere habe ich das Problem net so oft

...
edit:
aber anderer Seits habe ich jetzt mal die encoding Zeile hinzugefügt
und das funktioniert...
Verfasst: Dienstag 19. Mai 2009, 07:25
von halux
ja, aber ich habe doch codiert und mit u = unicode den Text als Unicode dargestellt. Wie sonst kann ich in deutsch zumindestens Label beschriften ??
Das Programm läuft aber im Interpreter ohne Fehler durch !
Verfasst: Dienstag 19. Mai 2009, 07:30
von halux
habe die coding zeile ausgetauscht
# -*- coding: utf-8 -*-
funktioniert immer noch nicht
Verfasst: Dienstag 19. Mai 2009, 07:40
von Traggger
Code: Alles auswählen
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtCore ,QtGui
class MainDialog(QtGui.QMainWindow):
# constructor for the main dialog
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
w = QtGui.QWidget()
self.setCentralWidget(w)
__layout = QtGui.QGridLayout()
self.l_laenge = QtGui.QLabel("<font color = black size = 5>" + u"Länge/Abwicklung : " + "</font>")
__layout.addWidget(self. l_laenge)
w.setLayout(__layout)
# MAIN routine
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
dialog = MainDialog()
dialog.show()
sys.exit(app.exec_())
Also das funktioniert bei mir und zeigt das "ä" sauber an...
Verfasst: Dienstag 19. Mai 2009, 11:08
von cofi
Um das nochmal klar zu stellen, da du offensichtlich keine Ahnung hast - die zwei Encodingzeilen beweisen das.
Die Encodingzeile gibt an mit welchem Encoding die Datei codiert ist. Mit dem Codec wird dann das Script decodiert und deshalb muss die angegebene Codierung auch der tatsächlichen entsprechen.
Dass es an den Umlauten knallt zeigt, dass das Encoding eben nicht utf-8 ist. Wenn du Windows benutzt und von Unicode redest, benutzt du höchst wahrscheinlich `utf-16`.