在QT designer 中完成自己的布局后,我们点击保存按钮。
文件的命名是以.ui保存。保存后的文件是以xml描述的布局信息。

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>Form</class><widget class="QWidget" name="Form"><property name="geometry"><rect><x>0</x><y>0</y><width>640</width><height>480</height></rect></property><property name="windowTitle"><string>Form</string></property><widget class="QLineEdit" name="lineEdit"><property name="geometry"><rect><x>50</x><y>90</y><width>113</width><height>21</height></rect></property></widget><widget class="QPushButton" name="pushButto1"><property name="geometry"><rect><x>60</x><y>150</y><width>93</width><height>28</height></rect></property><property name="cursor"><cursorShape>CrossCursor</cursorShape></property><property name="text"><string>PushButton</string></property></widget></widget><resources/><connections/>
</ui>

显然这样的文件我们无法使用。例如我这里需要对一个按钮的名称进行修改,然后在特定的时候把按钮隐藏起来。我们会发,按钮的实体在哪呢?代码呢?我们放上去的各种控件,我们在代码上如何对他操作呢?pyqt提供了一套工具,可以把.ui文件转换为.py文件


上图的PyUIC工具实现了.UI–>.py文件的转换

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(640, 480)self.lineEdit = QtWidgets.QLineEdit(Form)self.lineEdit.setGeometry(QtCore.QRect(50, 90, 113, 21))self.lineEdit.setObjectName("lineEdit")self.pushButto1 = QtWidgets.QPushButton(Form)self.pushButto1.setGeometry(QtCore.QRect(60, 150, 93, 28))self.pushButto1.setCursor(QtGui.QCursor(QtCore.Qt.CrossCursor))self.pushButto1.setObjectName("pushButto1")self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))self.pushButto1.setText(_translate("Form", "PushButton"))

很好,在.py文件中可以看到窗口定义了各种控件,使用了各种控件的方法。我们使用工具把.UI转换为.py文件,这两个文件一一对应。简单说就是在QT designer 中完成自己的布局后通过转换生成一个.py文件。如果我们手动在生成的py文件中修改内容,是可以运行的。但是当再次用QT designer修改布局后,去生成.py 那么手动写入的代码就会被覆盖,就是白写了。所以生成的这个文件我们不会把自己的代码写入其中。所以这个文件代表的是界面,是QT designer工具所生成的界面。如果项目中关于界面的部分比较简单仅仅靠QT designer下的设计就能完成的话,那么界面文件就是我们转换后的.py文件了。如果使用代码再次对界面进行编辑,而我们在文件上又要分离界面文件,这样我们还可以包一层文件。简单说就是我们建立一个文件 去继承自动生成的.py文件。

from PyQt5.QtWidgets import QApplication, QMainWindow
from untitled import *class MyWindow(QMainWindow,Ui_Form):def __init__(self, parent=None):super(MyWindow, self).__init__(parent)self.setupUi(self)

这样就完成了,对自动生成的.py文件的窗口继承。

PYQT5 界面分离相关推荐

  1. pyqt5界面与逻辑分离--信号槽的装饰器实现方式

    pyqt5界面与逻辑分离--信号槽的装饰器实现方式 本文展示了 pyqt5 信号槽的装饰器实现方式(借鉴自 eirc6) 一个简单的例子.实现功能:两个数相加,显示结果.如图 两个文件,第一个是界面文 ...

  2. PyQt5界面与逻辑的分离

    文章目录 一.问题描述 二.问题思路 三.问题解决 一.问题描述 当我们用QtDesigner制作完一个.ui界面后,转化成.py文件.之后又对此界面不太满意,想要重新修改完善界面,如果重新修改界面, ...

  3. 项目教程 | Pycharm+Pyqt5+Eric6实现逻辑与界面分离(实例教学)

    文章目录 前言 实现步骤:实例演示 1 创建一个eric项目文件 2. 创建窗体UI文件 3. 项目中添加文件 4. 编译UI文件. 5. 关联信号与槽函数 第1种方式,直接添加槽函数并与信号绑定 第 ...

  4. qpython3编辑器怎么用_Python快速入门系列:Pyqt5界面开发好帮手-Qss样式编辑器介绍...

    Python + Pyqt5界面开发时,总是需要考虑美化界面,QssStylesheetEditor 是一个功能强大的 Qt 样式表(QSS)编辑器,支持实时预览,自动提示,自定义变量. 功能简介 Q ...

  5. yolov3 python含新能源车牌识别系统有pyqt5界面

    yolov3 python含新能源车牌识别系统有pyqt5界面 # First download Darknet project $ git clone https://github.com/pjre ...

  6. 人脸识别系统OpenCV+dlib+python(含数据库)Pyqt5界面设计 项目源码 毕业设计

    一.项目主要技术 Python语言.dlib.OpenCV.Pyqt5界面设计.sqlite3数据库 本系统使用dlib作为人脸识别工具,dlib提供一个方法可将人脸图片数据映射到128维度的空间向量 ...

  7. PyQt5随笔:给PyQt5 界面添加右键菜单

    1.前言 一个完整的界面程序怎么少得了右键菜单呢?如在浏览器的右键菜单 我做的右键菜单如下图,其包括:图标,选项名称,快捷键 图标可以在      https://www.iconfont.cn/co ...

  8. 项目测试 | Pycharm+Pyqt5+Qt Designer6+Eric7实现逻辑与界面分离

    主要问题 本实例主要解决的问题:Qt Designer设计完UI文件,逻辑代码继承编译后的UI类无法实现窗体控件随主窗体大小变化而缩放. 测试目标 1. 用Eric创建epj文件:test.epj U ...

  9. 宽度发生变化事件监听_PyQt5(3) :实现登录 事件监听处理 程序逻辑功能和界面分离...

    学习于: 学点编程吧:PyQt5图形界面编程(目录) 最终界面如下: 然后是代码: import sys from PyQt5.QtWidgets import QApplication, QWidg ...

最新文章

  1. 【2012天津区域赛】部分题解 hdu4431—4441
  2. 《Windows via C/C++》学习笔记 —— “线程同步”之“检测死锁”
  3. TeraTerm设定(窗体大小,字体字号)保存为默认值
  4. Python—Mysql—Dbvisualizer
  5. python 选择多个文件夹_如何同时选择多个文件?
  6. 22种编程语言新年快乐
  7. Echarts笔记-折线图定制(Y轴百分数,鼠标移动显示百分数,显示X轴,Y轴值)
  8. 发卡网源码 去后门 可以扩展码支付
  9. oracle12 共享内存不存在,DBA警世录:Oracle的共享内存段
  10. CSS如何水平垂直居中?
  11. 求抛物线和直线交点_关于抛物线大题的参考经验(5):浙江历年学考题回顾...
  12. 人生理解---2、看《程序员年龄增大后的职业出路是什么》有感
  13. 利用GDAL进行工具开源化改造
  14. OA常见问题和解决方案
  15. Universally Slimmable Networks and Improved Training Techniques
  16. css媒体查询来兼容
  17. 可以计算一元二次方程复数根的模拟计算机
  18. 第一类第二类斯特林数总结
  19. 献给java初学者,非常适合新手练习的Java项目
  20. php计算用户留存,利用Python计算新增用户留存率

热门文章

  1. 华为云焕新数字生活,打造情景化智能产业链条
  2. Excel如何进行隔行复制粘贴
  3. php避免重定向,php 避免登录出现循环重定向
  4. python基础知识学习记录,day4
  5. win32c语言编程实例,实例分析一个简单的Win32程序
  6. NASM 全部指令「第一部分」
  7. 产品读书《互联网思维独孤九剑:移动互联网时代的思维革命》
  8. 广东石油化工学院计算机学院张磊,计算机学院教师受邀参加深圳计算机学会学术活动...
  9. python之获取token
  10. Microsoft Surface 2019新品发布会汇总