ich weiß, dass dieses leidige Thema schon mehrfach behandelt wurde, jedoch steige ich einfach nicht dahinter, wie man mit dem unicode - decode und encode - hantieren soll. Ich habe schon einiges gelesen, aber dennoch komme ich einfach nicht dahinter. In meinem Fall wird eine File Dialog geöffnet. Es gibt ja auch Pfade mit Umlaute oder Zeichen, die außerhalb von ASCII-Zeichen sind. Ich ging davon aus, dass das Rahmenwerk QT (QFileDialog) sich um solche Belange kümmert.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from os.path import expanduser
import sys
def get_new_path():
QMessageBox.about(None, 'No folder', "Nur ein Text")
folder = QFileDialog.getExistingDirectory(None, "Open folder",
expanduser("~"),
QFileDialog.ShowDirsOnly)
return folder
def show_path():
folder_path = get_new_path()
print folder_path
if __name__ == "__main__":
app = QApplication(sys.argv)
show_path()
sys.exit(app.exec_())
Ich bewege also mit meinem Pfad außerhalb des ASCII-Zeichen. Nun eine Frage an dieser Stelle. Was genau muss ich machen? Ich habe schon versucht die Variable folder_path mit der encode()-Methode und mit der decode()-Methode zu behandeln. QStrings haben solche Methoden nicht. Oder brauche ich diese Kodierung gar nicht, wenn ich die Variable folder_path zum Inhalt von lineEdit mache? Also, den Pfad über lineEdit ausgeben.AttributeError: 'QString' object has no attribute 'decode'
Ich freue mich über konkrete Vorschläge. Vielleicht kann es mir mal jemand an Hand meines Beispiels vernünftig erklären, denn ich möchte es auch verstehen. Danke euch.