新建ui_MainWindow.py文件
# encoding: UTF-8 # Qt相關和十字光標 from PyQt4.QtGui import * from PyQt4.QtCore import * from PyQt4 import QtGui,QtCore ######################################################################## class ui_MainWindow( QtGui.QMainWindow): # ---------------------------------------------------------------------- # 倆個構造函數 def __init__(self, parent=None): QtGui.QMainWindow.__init__(self)# 創建主界面對象 self.setWindowTitle(u'愛寬客') #錯誤代碼self.setWindowTitle('愛寬客'),會造成中文亂碼 self.resize(250,150) if __name__ == "__main__": import sys app = QApplication(sys.argv) main = ui_MainWindow()#創建一個主窗體(必須要有一個主窗體) main.show()#主窗體顯示 app.exec_()
PyQT中__init__(self,parent==None)的parent含義
在PyQt中,所以class都是從QObject派生而來,QWidget對象就可以有一個parent。這種parent-child關
系主要用於兩個方面:
沒有parent的QWidget類被認為是最上層的窗體(通常是MainWindow),由於MainWindow的一些操作生成
的新窗體對象,parent都應該指向MainWindow。
由於parent-child關系的存在,它保證了child窗體在主窗體被回收之時也被回收。
parent作為構造函數的最后一個參數被傳入,但通常情況下不必顯示去指定parent對象。因為當調用局
管理器時,部局管理器會自動處理這種parent-child關系。但是在一些特殊的情況下,我們必須顯示的
指定parent-child關系。如當生成的子類不是QWidget對象但繼承了QObject對象,用作dock widgets的
QWidget對象。
問題:
1: app = QApplication(sys.argv)//必須傳入參數
初始化窗口系統並且使用在argv中的argc個命令行參數構造一個應用程序對象。參考http://www.kuqin.com/qtdocument/qapplication.html#QApplication
2:PyQt4中的中文顯示問題
解決方法:a:中文加 u
b: QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))
c:
# 重載sys模塊,設置默認字符串編碼方式為utf8 import sys reload(sys) sys.setdefaultencoding('utf8')
或者顯式的使用unicode函數進行轉換。
水平有限,以待后面補充加改