2014-06-08 60 views
1

我正在使用PyCharm 3.1和Python 2.7.6來處理PySide 1.21和Qt 4.85。我想我的應用程序支持Unicode,以便在代碼的開頭I型:PySide中的Unicode支持

#--coding: utf-8 -- 

from PySide.QtCore import * 
from PySide.QtGui import * 
import sys 
import math 

class Form(QDialog): 

    def __init__(self,parent=None): 
     super(Form,self).__init__(parent) 

     self.resultsList = QTextBrowser() 
     self.resultsInput = QLineEdit("Enter an expression and press return key") 
     layout = QVBoxLayout() 

     layout.addWidget(self.resultsList) 
     layout.addWidget(self.resultsInput) 

     self.setLayout(layout) 
     self.resultsInput.selectAll() # or 
     self.resultsInput.setFocus() 

     self.resultsInput.returnPressed.connect(self.compute) 

    def compute(self): 
     try: 
      text = self.resultsInput.text() 
      self.resultsList.append("{0} =<b>{1}</b>".format(text, eval(text))) 

     except: 
      self.resultsList.append("<font color=red><b>Expression Invalid</b></font>") 
      # self.resultsList.append("<font color=red><b>格式錯誤</b></font>") ## unicode 

app = QApplication(sys.argv) 
form = Form() 
form.show() 
app.exec_() 

當我使用Unicode在更換代碼除了塊,unicode的不正確的程序顯示出來。我哪裏錯了? PySide,Qt或某些設置錯誤是否存在問題?任何幫助將不勝感激。

回答

2

最後我把它排序。這是簡單的,在Python 2.7,當你想支持Unicode,你需要聲明:

#--coding: utf-8 -- 

在節目的開始,也當硬盤在應用與編碼,你需要寫的「u」在代碼前面。例如:

self.resultsList.append("<font color=red><b>Expression Invalid</b></font>") 

必要爲寫:

self.resultsList.append(u"<font color=red><b>格式錯誤</b></font>") 

只是一個小的 「u」,問題就解決了。