Avatar billede chrishunter Nybegynder
26. juni 2011 - 09:34 Der er 4 kommentarer og
1 løsning

Python-script med QtGui accepterer ikke danske bogstaver i hovedprogrammet

Hej eksperter!


Et Python-script, jeg er igang med, laver jeg i Eric 4.4 og således også i Qt Designer 4.7.1 (og med Qt 4.7.1).

Scriptet har et mainwindow med en QListWidget, som Qt Designer har lagt i en fil med bl.a. følgende kode (idet jeg for at se, hvorvidt det virker, har puttet (hardwired) tre dummy-items med danske bogstaver ind):


# ...

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        # ...
        self.lstBegivenheder = QtGui.QListWidget(self.centralWidget)
        self.lstBegivenheder.setObjectName(_fromUtf8("lstBegivenheder"))
        QtGui.QListWidgetItem(self.lstBegivenheder)
        QtGui.QListWidgetItem(self.lstBegivenheder)
        QtGui.QListWidgetItem(self.lstBegivenheder)
        # ...

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
        __sortingEnabled = self.lstBegivenheder.isSortingEnabled()
        self.lstBegivenheder.setSortingEnabled(False)
        self.lstBegivenheder.item(0).setText(QtGui.QApplication.translate("MainWindow", "tandlæge", None, QtGui.QApplication.UnicodeUTF8))
        self.lstBegivenheder.item(1).setText(QtGui.QApplication.translate("MainWindow", "møde", None, QtGui.QApplication.UnicodeUTF8))
        self.lstBegivenheder.item(2).setText(QtGui.QApplication.translate("MainWindow", "badminton", None, QtGui.QApplication.UnicodeUTF8))
        self.lstBegivenheder.setSortingEnabled(__sortingEnabled)

# ...

Og det virker fint. Men når jeg forsøger fra hovedprogrammet (der ligger i en anden fil)

# ...

if __name__ == "__main__":
    # ...
    ui = MainWindow()
    ui.lstBegivenheder.item(2).setText(QtGui.QApplication.translate("MainWindow", "middag", None, QtGui.QApplication.UnicodeUTF8))
    ui.lstBegivenheder.item(0).setText(QtGui.QApplication.translate("MainWindow", "møde", None, QtGui.QApplication.UnicodeUTF8))

# ...

går det galt, når jeg forsøger at ændre et teksten i et item til en ny med danske bogstaver. Eric kommer med en fejlmeddelelse:
The file /.../main.py contains the syntax error Non-ASCII character '\xc3' in file /.../main.py on line 10, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details at line 10, character 0.
(Jeg har erstattet stien til scriptet med ... aht overskueligheden.)

Det går godt i den første ("i byen"), hvor der ikke er danske bogstaver, men galt i den anden ("møde"), hvor der er et 'ø'.

Er der nogen, der ved, hvad det er, jeg gør galt, og hvad jeg skal gøre istedet?


Venlig hilsen

Christian


P.S. Linket http://www.python.org/peps/pep-0263.html i fejlmeddelelsen kan måske give et svar. Men det er ikke lykkedes mig at finde det dér.
Avatar billede magic-mouse Novice
26. juni 2011 - 09:59 #1
Forsøg at ændre tegnsættet på input det skulle i mange tilfælde løse et sådan problem.
Avatar billede chrishunter Nybegynder
26. juni 2011 - 17:12 #2
Hvordan ændrer jeg tegnsættet på input?
Avatar billede chrishunter Nybegynder
01. juli 2011 - 09:31 #3
Okay, nu fandt jeg ud af det (ved med rådet om at ændre tegnsættet på input in mente at gennemlæse linket http://www.python.org/peps/pep-0263.html nævnt i fejlmeddelelsen).

Så jeg har tilføjet som linje nr. 2 (som det nødvendigvis må være):

# -*- coding: utf-8 -*-

Og nu virker det.

Tak for hjælpen, magic-mouse! Smid lige et svar,
Avatar billede magic-mouse Novice
06. juli 2011 - 21:41 #4
Svar her.
Kender dog ikke så meget til python, men problemet er generelt der hvor jeg arbejder, så problemstillingen var bekendt.
Avatar billede chrishunter Nybegynder
07. juli 2011 - 07:37 #5
Uanset: Det virkede. :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester