2014-06-08 59 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”,问题就解决了。