Python String和PyQt QString的区别

如题所述

您好,很高兴为您解答。

以下在 Python2.6和PyQt4.4.4 for Python2,6环境下讨论:
Python中有两种有关字符的类型:Python string object和Python Unicode object。主要使用Python string object进行数据输入输出。
PyQt中与之相对应的字符有关类型是:QByteArray和QString。主要使用QString操作数据。

1)Python string object是原始编码是有区分的,通过 decode('原始编码') 解码得到utf16类型即Python Unicode object。Python Unicode object原始编码固定是utf16,通过 encode('目的编码') 编码来得到Python string object。
2)对于英 文,PyQt函数需要QString参数的地方都可以直接用Python string object或者Python Unicode object。对于中文,利用unicode()函数显示指定gb2312编码进行中文编码转换,转换后的Python Unicode object可以直接作为QString参数代入。
unicode('中 文', 'gb2312', 'ignore')
3)对于英文,可以使 用unicode()直接将QString转换为Python Unicode object,并进一步encode()得到Python string object,也可以使用str()函数直接将QString转换为Python string object。对于中文,利用unicode()指定原始编码gbk来解决QString转换为Python Unicode object问题,但对于GUI使用仍有缺陷,不过无碍;进一步利用encode('gb2
312')得到Python string object,或者结合QString的toUtf8()再利用str()函数;但对于GUI编程str()方法还是不行,只可结合QString的 toUtf8()进行unicode()转换后再利用encode('gb2
312')。
str(QtCore.QString(' 中文').toAscii())
unicode(QtCore.QString('中文'),'gbk','ignore').encode('gb2312')
myText = unicode(self.myLineEdit.text().toUtf8(),'utf8', 'ignore').encode('gb2312')

如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

~ O(∩_∩)O~
温馨提示:内容为网友见解,仅供参考
无其他回答

Python String和PyQt QString的区别
Python String和PyQt QString的主要区别在于它们的来源、用途以及内部实现。首先,Python String是Python语言的基本数据类型之一,用于表示和操作文本数据。它是Python标准库的一部分,不需要额外的库或模块支持。Python String具有简洁的语法和丰富的操作方法,可以方便地进行字符串的拼接、切片、查找、替换等操...

python string和PyQt的QString的区别
python的string对象是继承了PyObject而qyqt的QString是继承了QObject。所需要需要转换。pyqt的其它的数据也是一样,自己注意一下。python通常是变量类型自动转换的。只是pyqt不成。一定要显式的转换。

Python String和PyQt QString的区别
QString就是PyQt内建的String,功能是一样的,两者也可以很方便的进行转换。

Python String和PyQt QString的区别
1) python string object可以理解为一个接一个字节的字节组,至于表示什么编码,与表示文字有关,比如“python string”,“中文”。注意它是有不同编码区分的。PyQt中与之对应的是QbyteArray,而不是Qstring。A built-in string object (plain or Unicode) is a sequence of characters used to sto...

python 的 string 和 PyQt 的 QString 的区别
QString是PyQt自己重新定义的一个类 QString有个toUtf8的方法转成python string QtCore.QString('中文').toUtf8()

Python String和PyQt QString的区别
1)Python string object是原始编码是有区分的,通过 decode('原始编码') 解码得到utf16类型即Python Unicode object。Python Unicode object原始编码固定是utf16,通过 encode('目的编码') 编码来得到Python string object。2)对于英 文,PyQt函数需要QString参数的地方都可以直接用Python string object或者...

PyQt的QString和python的string的区别
QString是PyQt自己重新定义的一个类 QString有个toUtf8的方法转成python string QtCore.QString('中文').toUtf8()

Python String和PyQt QString的区别
功能上没有什么区别,只不过QString是qt内建的一个类,两者之间也可以直接转换,比如qstring转string:QString.toUtf8()

Python String和PyQt QString的区别
你在QT界面里面显示字符串的时候,必须要把Python中的string转换成Qstring才能显示.

qstr是什么意思?
qstr是一个在Python中使用的字符串类型,是在QString上建立的Python字符串。其目的是将Python字符串转换为QT风格的字符串,以便在PyQT应用程序中使用。使用qstr的好处是什么?使用qstr可以在Python代码中方便地操作QT GUI控件,而无需进行任何编码和解码。此外,qstr字符串还支持QT GUI控件的多种格式,包括...

相似回答