第一個Python窗體程序


新建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函數進行轉換。

水平有限,以待后面補充加改


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM