pyqt4 print到文本框 以及文本框中文乱码

来源:互联网 发布:免费域名申请tk 编辑:程序博客网 时间:2024/04/29 16:03
原文链接

程序:
from PyQt4 import QtCoreclass EmittingStream(QtCore.QObject):    textWritten = QtCore.pyqtSignal(str)    def write(self, text):        self.textWritten.emit(str(text))

# Within your main window class...def __init__(self, parent=None, **kwargs):    # ...    # Install the custom output stream    sys.stdout = EmittingStream(textWritten=self.normalOutputWritten)def __del__(self):    # Restore sys.stdout    sys.stdout = sys.__stdout__def normalOutputWritten(self, text):    """Append text to the QTextEdit."""    # Maybe QTextEdit.append() works as well, but this is how I do it:    cursor = self.textEdit.textCursor()    cursor.movePosition(QtGui.QTextCursor.End)    cursor.insertText(text)    self.textEdit.setTextCursor(cursor)    self.textEdit.ensureCursorVisible()
以上是关键代码
打印中文出现乱码,代码:
from PyQt4.QtCore import *
        QTextCodec.setCodecForCStrings(QTextCodec.codecForName("utf-8"))  
加上这两句就好了。

如果读数据库中文,则需要转码,否则会报错“UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)”

解决方法:
在中文后加 .encode("utf-8")


0 0
原创粉丝点击