Umlaute aus QTextEdit lesen [pyQT]

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
luke8800gts
User
Beiträge: 1
Registriert: Mittwoch 4. Februar 2015, 16:23

Hallo,
hab jetzt schon länger gesucht, aber keine Lösung fürs Einlesen von Umlaute aus einem QTextEdit-Feld.

Code: Alles auswählen

text = self.textField.toPlainText() 
Ich erhalte den Fehler:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
Wie geh ich hier am besten vor? :?
BlackJack

@luke8800gts: Bist Du sicher dass das in *der* Zeile passiert? Das glaube ich eher nicht. Du hast wahrscheinlich gar kein Problem Umlaute aus der GUI zu holen, sondern eher irgendwann später wenn Du versuchst Unicode irgendwo zu verwenden wo ein Bytestring erwartet wird, und Du an der Stelle das nicht entsprechend kodierst.
BlackJack

Beispiel das das auslesen kein Problem ist:

Code: Alles auswählen

import sys
from PyQt4.QtGui import (
    QApplication, QLabel, QMainWindow, QPushButton, QTextEdit, QVBoxLayout,
    QWidget
)


class MainWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        
        layout = QVBoxLayout()
        widget = QWidget(self)

        self.text_edit = QTextEdit(widget)
        layout.addWidget(self.text_edit)
        
        copy_button = QPushButton('copy', widget)
        layout.addWidget(copy_button)

        self.copy_label = QLabel(widget)
        layout.addWidget(self.copy_label)

        widget.setLayout(layout)
        self.setCentralWidget(widget)

        copy_button.clicked.connect(self.on_copy)

    def on_copy(self):
        self.copy_label.setText(self.text_edit.toPlainText())


def main():
    application = QApplication(sys.argv)

    window = MainWindow()
    window.show()

    sys.exit(application.exec_())


if __name__ == '__main__':
    main()
Antworten