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

yipeiwu_com6年前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切片操作深入详解

本文实例讲述了Python切片操作。分享给大家供大家参考,具体如下: 我们基本上都知道Python的序列对象都是可以用索引号来引用的元素的,索引号可以是正数由0开始从左向右,也可以是负数...

Python统计时间内的并发数代码实例

这篇文章主要介绍了Python统计时间内的并发数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python实现并发的手段:...

Python多线程编程(一):threading模块综述

Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理...

从请求到响应过程中django都做了哪些处理

前言 最近面试的时候,被面试官问道一个问题,就是 request.user 里面的 user 是怎样得到的,这个问题当时没有回答上来,可以说是非常的尴尬,所以赶快查了一些资料,看了一些源...

Python使用Pickle库实现读写序列操作示例

本文实例讲述了Python使用Pickle库实现读写序列操作。分享给大家供大家参考,具体如下: 简介 pickle模块实现了用于对Python对象结构进行序列化和反序列化的二进制协议。“...