第一个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函数进行转换。

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


原文地址:https://www.cnblogs.com/ft-Pavilion/p/7846838.html