簡體   English   中英

PyQt4 Python2 Unicode

[英]PyQt4 Python2 Unicode

大家好,我一直在Ubuntu上使用python和PyQt4制作計算器。

我有一些帶有Unicode字符的按鈕(后退箭頭,根),我在終端中使用了cxfreeze命令來編譯我的項目,默認情況下它使用python 2一切都很好,但是當我運行該程序時,按鈕上的文本為' t正確顯示。

我嘗試在腳本中添加# -*- coding: utf-8 -*- ,但沒有幫助。

這是在python2下的樣子:

Python2

在Python3下:

Python3

我想知道是否有一種方法可以使cx_freeze使用python3,或者在python2下正確顯示特殊字符。

任何幫助將不勝感激,謝謝。

很久以前,我制作了一個具有unicode字符的程序(PyQt4 / PySide和python 2.7.x),並使用cx_Freeze構建並正常工作。

我使用例如:

u"\u25B2"

QString僅接受ASCII字符。 我認為它不適用於Python v2或v3。 由於QByteArray接受Latin-1,您可能會從中得到更多。

從文檔:

http://pyqt.sourceforge.net/Docs/PyQt4/gotchas.html

對於Python v3,默認情況下會進行以下轉換。

  • 如果Qt期望使用char *(或const版本),則PyQt4將接受僅包含ASCII字符,字節,QByteArray或實現緩沖協議的Python對象的str或QString。
  • 如果Qt需要一個char(或const版本),則PyQt4將接受與char *相同的類型,並且還要求提供一個字符。
  • 如果Qt期望帶符號的char *或無符號的char *(或const版本),則PyQt4將接受一個字節。
  • 如果Qt需要一個有符號的char或一個無符號的char(或const版本),則PyQt4將接受長度為1的字節。
  • 如果Qt期望使用QString,則PyQt4將接受str(僅包含ASCII字符,QChar或QByteArray的字節)。
  • 如果Qt需要一個QByteArray,那么PyQt4也將接受僅包含Latin-1字符或字節的str。

對於Python v2,默認情況下會進行以下轉換。

  • 如果Qt期望使用char *,signed char *或unsigned char *(或const版本),則PyQt4將接受僅包含ASCII字符,str,QByteArray或實現緩沖區協議的Python對象的unicode或QString。 。
  • 如果Qt期望使用char,signed char或unsigned char(或const版本),則PyQt4將接受與char *,signed char *和unsigned char *相同的類型,並且還要求提供單個字符。
  • 如果Qt需要QString,則PyQt4將接受unicode,即僅包含ASCII字符,QChar或QByteArray的str。
  • 如果Qt需要一個QByteArray,則PyQt4將接受僅包含Latin-1字符或str的unicode。

在文件頂部添加編碼僅在讀取文件而不解釋代碼時才有助於操作系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM