PyQt学习记录 -(一 )快速入门

PyQt和Qt Designer符合MVC开发模式,做到显示和业务逻辑的分离,以下是PyQt的简单配置记录。

S1:MVC开发模式

S1.1 MVC模式构成

MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式,这种模式用于应用程序的分层开发。

  • Model(模型) - 模型代表的是一个存取数据的对象。它也可以带有逻辑,在发生数据变化时更新控制器。
  • View(视图) - 视图用来显示,代表模型包含的数据的可视化。
  • Controller(控制器) - 控制器作用在模型和视图上,它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。

S1.2 实现

例如创建一个名为 Student 对象的模型,StudentView 是一个把学生详细信息传输到控制台的视图类,StudentController 负责存储数据到 Student 对象中的控制器类,并会相应地更新视图 StudentView。
MVCPatternDemo,我们的演示类使用 StudentController 来演示 MVC 模式的用法。
在这里插入图片描述

S2:下载安装

使用PyQt需预先安装 PyQt DesignerPyQt5 ,开发工具采用 Pycharm Community ,环境下载地址:

  • PyQt Designer 用于设计View试图:下载
  • PyQt5环境用于编辑后台逻辑, Anaconda安装PyQt环境:Anaconda 下载

S3: 快速入门

S3.1 新建筑窗口

打开 Qt Designer 的界面,最常用的是 Widget(通用窗口)Main Window(主窗口)
在这里插入图片描述

S3.2 窗口主要区域介绍

以下对窗口中包含的诸多区域功能进行介绍:
在这里插入图片描述

  • 【区域1】Widget Box 工具箱 提供很多空间,每个空间都有自己的名称,提供不同功能,例如:按钮、单选钮、文本框等。再菜单栏选择 “”窗体“”=>"预览”,或者按“ctrl+R”快捷键,可以看到窗口的预览效果。
  • 【区域2】主窗口区,能够直接从工具区直接拖拽功能框到窗口。
  • 【区域3】对象查看器,可以查看主窗口中仿制的对象列表;
  • 【区域4】属性编辑器,提供对窗口、空间、布局的属性编辑功能,如
名称功能
objectName控件对象名称
geometry相对坐标系
sizePolicy控件大小策略
minimumSize最小宽度、高度
maximumSize最大宽度、高度
font字体
cursor光标
windowTitle窗口标题
windowsIcon、Icon窗口图标、控件图标
iconSize图标大小
toolTip提示信息
text控件文本
shortcut快捷键
  • 【区域5】信号、槽编码器、动作编辑器和资源浏览器,信号、槽编辑器可为控件添加自定义信号和槽函数,资源浏览器可谓控件添加图片。

S3.3 查看UI文件

Qt Designer默认文件为 .ui 文件,描述窗口中空间的属性和布局,.ui 文件中包含的内容是XML(可扩展标记语言)格式。
从图中可得到,属性编辑器和文档信息是一致的。
在这里插入图片描述

S3.4 将.ui文件转为.py文件

有多种方式将 .ui 文件转为 .py 文件,例如这里通过命令行转换文件"firstMainWin":

pyuic5 -o firstMainWin.py firstMainWin.ui

关于pyuic5命令可到官网查看,此外还可通过python脚本和Eric IDE转换.ui到.py文件。

S3.5 界面与逻辑分离

用来显示界面的.py文件由.ui文件转化而来,因此每次修改.ui文件会造成.py文件改变。
程序需要新建一个.py文件调用界面文件,这个文件叫逻辑文件,这样实现了界面与逻辑的分离。
例如构建一个 CallFirstMainWin.py 文件,并继承界面文件的主窗口类即可,如:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from firstMainWin import *

class MyMainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(MyMainWindow, self).__init__(parent)
        self.setupUi(self)

if __name__ =="__main__":
    app = QApplication(sys.argv)
    myWin = MyMainWindow()
    myWin.show()
    sys.exit(app.exec_())

参考内容:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值