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

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


 

posted @   Pavilion  阅读(11997)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示