PYQT5 界面分离
在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 界面分离相关推荐
- pyqt5界面与逻辑分离--信号槽的装饰器实现方式
pyqt5界面与逻辑分离--信号槽的装饰器实现方式 本文展示了 pyqt5 信号槽的装饰器实现方式(借鉴自 eirc6) 一个简单的例子.实现功能:两个数相加,显示结果.如图 两个文件,第一个是界面文 ...
- PyQt5界面与逻辑的分离
文章目录 一.问题描述 二.问题思路 三.问题解决 一.问题描述 当我们用QtDesigner制作完一个.ui界面后,转化成.py文件.之后又对此界面不太满意,想要重新修改完善界面,如果重新修改界面, ...
- 项目教程 | Pycharm+Pyqt5+Eric6实现逻辑与界面分离(实例教学)
文章目录 前言 实现步骤:实例演示 1 创建一个eric项目文件 2. 创建窗体UI文件 3. 项目中添加文件 4. 编译UI文件. 5. 关联信号与槽函数 第1种方式,直接添加槽函数并与信号绑定 第 ...
- qpython3编辑器怎么用_Python快速入门系列:Pyqt5界面开发好帮手-Qss样式编辑器介绍...
Python + Pyqt5界面开发时,总是需要考虑美化界面,QssStylesheetEditor 是一个功能强大的 Qt 样式表(QSS)编辑器,支持实时预览,自动提示,自定义变量. 功能简介 Q ...
- yolov3 python含新能源车牌识别系统有pyqt5界面
yolov3 python含新能源车牌识别系统有pyqt5界面 # First download Darknet project $ git clone https://github.com/pjre ...
- 人脸识别系统OpenCV+dlib+python(含数据库)Pyqt5界面设计 项目源码 毕业设计
一.项目主要技术 Python语言.dlib.OpenCV.Pyqt5界面设计.sqlite3数据库 本系统使用dlib作为人脸识别工具,dlib提供一个方法可将人脸图片数据映射到128维度的空间向量 ...
- PyQt5随笔:给PyQt5 界面添加右键菜单
1.前言 一个完整的界面程序怎么少得了右键菜单呢?如在浏览器的右键菜单 我做的右键菜单如下图,其包括:图标,选项名称,快捷键 图标可以在 https://www.iconfont.cn/co ...
- 项目测试 | Pycharm+Pyqt5+Qt Designer6+Eric7实现逻辑与界面分离
主要问题 本实例主要解决的问题:Qt Designer设计完UI文件,逻辑代码继承编译后的UI类无法实现窗体控件随主窗体大小变化而缩放. 测试目标 1. 用Eric创建epj文件:test.epj U ...
- 宽度发生变化事件监听_PyQt5(3) :实现登录 事件监听处理 程序逻辑功能和界面分离...
学习于: 学点编程吧:PyQt5图形界面编程(目录) 最终界面如下: 然后是代码: import sys from PyQt5.QtWidgets import QApplication, QWidg ...
最新文章
- 【2012天津区域赛】部分题解 hdu4431—4441
- 《Windows via C/C++》学习笔记 —— “线程同步”之“检测死锁”
- TeraTerm设定(窗体大小,字体字号)保存为默认值
- Python—Mysql—Dbvisualizer
- python 选择多个文件夹_如何同时选择多个文件?
- 22种编程语言新年快乐
- Echarts笔记-折线图定制(Y轴百分数,鼠标移动显示百分数,显示X轴,Y轴值)
- 发卡网源码 去后门 可以扩展码支付
- oracle12 共享内存不存在,DBA警世录:Oracle的共享内存段
- CSS如何水平垂直居中?
- 求抛物线和直线交点_关于抛物线大题的参考经验(5):浙江历年学考题回顾...
- 人生理解---2、看《程序员年龄增大后的职业出路是什么》有感
- 利用GDAL进行工具开源化改造
- OA常见问题和解决方案
- Universally Slimmable Networks and Improved Training Techniques
- css媒体查询来兼容
- 可以计算一元二次方程复数根的模拟计算机
- 第一类第二类斯特林数总结
- 献给java初学者,非常适合新手练习的Java项目
- php计算用户留存,利用Python计算新增用户留存率