解决python中使用PYQT时中文乱码问题

yipeiwu_com5年前Python基础

如题,解决Python中用PyQt时中文乱码问题的解决方法:

在中文字符串前面加上u,如u'你好,世界',其他网上的方法没有多去探究,Python的版本也会影响解决方法,故这里只推荐这种。

(有人说用toLocal8bit函数也可以,我试了下,貌似不行)请看例子:

#coding=utf-8

from PyQt4 import QtGui, QtCore

s = QtCore.QString(u'你好(hello)世界(world)')
t = s.toLocal8Bit()
u = unicode(t,'gbk','ignore')
print t
print u

这段程序的输出是:

���(hello)����(world)
你好(hello)世界(world)

【注】在使用控件,需要使用中文时,在要显示的字符串前面加上u即可,如(下面两句代码是在类中的,不可直接执行):

btn_quit = QtGui.QPushButton(u"关闭",self)

reply = QtGui.QMessageBox.question(self, u'消息对话框',
      "Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)

以上这篇解决python中使用PYQT时中文乱码问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

浅析python继承与多重继承

记住以下几点: 直接子类化内置类型(如dict,list或str)容易出错,因为内置类型的方法通常会忽略用户覆盖的方法,不要子类化内置类型,用户自定义的类应该继承collections模...

python使用matplotlib库生成随机漫步图

python使用matplotlib库生成随机漫步图

本教程使用python来生成随机漫步数据,再使用matplotlib将数据呈现出来 开发环境 操作系统: Windows10 IDE: Pycharm 2017.1.3 Python...

python list使用示例 list中找连续的数字

线上有个需求,格式化,从一堆s1,s100-s199中找出连续的服并且格式化显示出来,如:神魔:S106-109,s123,s125御剑: s106-109,s123,s125复制代码...

Python MySQLdb Linux下安装笔记

在家里windows环境下搞了一次 见   python MySQLdb在windows环境下的快速安装、问题解决方式 /post/65746.htm 在公司开发需要...

Python机器学习之scikit-learn库中KNN算法的封装与使用方法

Python机器学习之scikit-learn库中KNN算法的封装与使用方法

本文实例讲述了Python机器学习之scikit-learn库中KNN算法的封装与使用方法。分享给大家供大家参考,具体如下: 1、工具准备,python环境,pycharm 2、在机器学...