python中QStringList与QString、String互转

在使用pyQt进行GUI编程时,经常会遇到获取编辑框的内容等,其返回的是QString()和QStringList()类,简单的说,就是QT自己的String和list类,但是这些类不能和python的String和List类混用,需要转换一下。
1、QStringList转QString:
 
    
from PyQt4.QtCore import *
qList = QStringList(['a','b','c'])
qStr = qList.join(';') #可以使用其他字符连接
print qStr
输出结果:
 
    
'a;b;c'

2、QString 转QStringList:
使用字符串切割方法。
 
    
from PyQt4.QtCore import *
qStr = QString('a;b;c')
qList = qStr.split(';')
for q in qList:
print q
输出结果:
 
    
'a'
'b'
'c'
3、QString转String:
一般使用unicode()方法将QString 转换乘String
 
    
from PyQt4.QtCore import *
qStr = QString('abc')
Str = unicode(qStr)
print Str
或者使用str()函数直接转换
 
     
from PyQt4.QtCore import *
qStr = QString('abc')
Str = str(qStr)
print Str

对于中文,则需要注意编码问题,在GUI编程中,QLineEdit等编辑框获得的文本是使用unicode编码的QString。一般是将QString转换成utf8编码,在转换成String时,再使用utf8解码。
 
    
from PyQt4.QtCore import *
myText = unicode(self.myLineEdit.text().toUtf8(),'utf8', 'ignore')
在直接创建QString时,记住中文前面要加u,即使用unicode编码
 
    
from PyQt4.QtCore import *
qStr = QString(u'一个')
Str = unicode(qStr.toUtf8(),'utf-8','ignore')
print Str
4、String转QString:
直接用String创建QString对象:
 
    
from PyQt4.QtCore import *
Str = u'一个'
qStr = QString(Str)
print qStr
更深入的讲解可参考:
http://blog.chinaunix.net/uid-200142-id-4018863.html

你可能感兴趣的:(Python)