PyQt5 关于Qt Designer的初步应用和打包过程详解

目录
  • Qt Designer的介绍
  • 1. 缘由
  • 2. 搭建
    • 2.1. 安装
    • 2.2. 打开
    • 2.3. 设计
    • 2.4. 转换
  • 3. 效果
    • 3.1. 引用
    • 3.2. 启动
    • 3.3. 打包
    • 3.4. 触发

Qt Designer的介绍

在PyQt中编写UI界面可以直接通过代码来实现,也可以通过Qt Designer来完成。Qt Designer的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现了开发的便捷。Qt Designer中的操作方式十分灵活,其通过拖拽的方式放置控件可以随时查看控件效果。Qt Designer生成的.ui文件(实质上是XML格式的文件)也可以通过pyuic5工具转换成.py文件。 Qt Designer随PyQt5-tools包一起安装,其安装路径在 “Python安装路径\Lib\site-packages\pyqt5-tools”下。若要启动Qt Designer可以直接到上述目录下,双击designer.exe打开Qt Designer;或将上述路径加入环境变量,在命令行输入designer打开;或在PyCharm中将其配置为外部工具打开。下面以PyCharm为例,讲述PyCharm中Qt Designer的配置方法。

机器人开发之路总会有很多的艰难险阻,但虽然辛苦,还是选择了那种滚烫的人生。很幸运,获得了机器人开发领域优质创作者身份认证。征途漫漫,惟有奋斗,共勉!

1. 缘由

开发过程中,难免需要自己手动开发一些交互工具简单的如自动化脚本复杂一点的呢就是带界面交互的应用软件了

QT呢就是一款很受欢迎的图形用户界面应用程序开发框架只宠Python的搬运工,就需要Python和Qt库融合的工具,它就是 PyQt5

在PyQt中编写UI界面可以直接通过代码来实现,也可以通过Qt Designer来完成其实现了视图和逻辑的分离,从而实现了开发的便捷

2. 搭建

2.1. 安装

若未安装pyqt5,则需先安装:

$ pip3 install pyqt5

然后安装常用工具:

$ pip3 install pyqt5-tools pyinstaller

pyqt5和pyinstaller有版本对应关系,推荐同时期安装,如果版本偏差,会导致pyinstaller打包一直失败。

2.2. 打开

找到 Qt Designer 应用程序启动文件,这边的地址是对应Python目录下的 \Lib\site-packages\qt5_applications\Qt\bin\designer.exe

可以添加桌面快捷方式方便后续打开

打开 designer.exe

创建新的Form给出了5个模板,但实际上只有3种不同类型的模板,分别是Dialog、Main Window和Widget

  • Main Window 主界面

一个窗口是父/子的顶部,通常显示标题栏和边框。底层窗口系统(Windows、KDE、GNOME等)将为窗口提供策略,如标题栏/边框样式、布局和焦点等。

  • Widget 小部件

屏幕上的一个矩形区域,用于显示和用户交互,包括按钮、滑块、视图、对话框和窗口等。所有窗口小部件将在屏幕上显示某些内容,许多窗口小部件也将接受来自键盘或鼠标的用户输入。

  • Dialog 对话框

通常是临时的,可以设置不同的标题栏外观,主要用于通知或收集输入窗口,并且底部或右侧通常具有OK、Cancel等按钮。

这里选择创建一个Main Window

在QT Designer界面里分为5个区域,正中间区域是软件设计的界面,左右两侧是功能区域,功能区域的说明如下:

  • Widget Box:控件区,软件的功能控件都在此区域生成,可以拉拽控件到模板上实现可视化软件设计。
  • 对象查看器:软件的目录结构,显示模板中所有控件的类型,能帮助设计者快速找到控件。
  • 属性编辑器:控件属性区,主要修改控件的属性。
  • 信号/槽编辑器:对象间的通信机制。如单击按钮(信号 Signal)时候所触发的事件(槽 Slot)。

2.3. 设计

拉拽个按钮控件,并保存为csdn.ui

2.4. 转换

打开刚刚保存的ui文件,可以发现其实也就是XML文件

现在需要通过工具转换成py文件

$ pyuic5 源文件.ui -o 目标文件.py

即:

$ pyuic5 .\csdn.ui -o .\csdn.py

推荐作为py脚本,方便后续或批量转换

3. 效果

3.1. 引用

创建一个逻辑文件logic.py

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from csdn import Ui_MainWindow

class MyWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MyWindow, self).__init__()
        self.setupUi(self)

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

通过上述代码,继承了Ui_MainWindow类,使用其构造方法构造主窗口并定义了程序的入口,通过创建QApplication对象来创建Qt窗口

3.2. 启动

启动logic.py文件

3.3. 打包

可以通过pyinstaller进行打包

普通

$ pyinstaller -w logic.py

在dist文件夹内生成工程文件夹 logic,寻找logic.exe文件启动

整合

$ pyinstaller -F -w logic.py

在dist文件夹内生成logic.exe整合文件,点击启动(启动较久)

配置信息在执行以上两种打包时候,会产生.spec配置文件,可以通过调整配置文件执行打包

$ pyinstaller logic.spec

3.4. 触发

使用connect()方法将信号与槽函数绑定在一起当信号发射时,连接槽函数将会自动执行

如把点击pushButton按钮作为一个信号

class MyWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MyWindow, self).__init__()
        self.setupUi(self)
        # 将pushButton信号与槽函数touch_button绑定
        self.pushButton.clicked.connect(self.touch_button)

    def touch_button(self):
        print('点击按钮了')

此时点击按钮,可看到终端显示提示了

到此这篇关于PyQt5 关于Qt Designer的初步应用和打包的文章就介绍到这了,更多相关Qt Designer应用打包内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • pyqt5、qtdesigner安装和环境设置教程

    前言 最近工作需要写一个界面程序来调用摄像头并对摄像头采集的图像做一些处理.程序需要使用Python语言编写,经过调研发现PyQt5配合QtDesigner在界面程序编写方面具有功能丰富.入门简单的优点,适合我这种编程的小白.PyQt5虽然入门比较简单,但对于我这种小白来讲还是挺有难度的,学习过程中也费了不少的力气,因此在这里总结一下程序编写的过程,方便以后回顾,也方便有需要的童鞋借鉴. 我工作中使用的是USB接口输入的Flir相机,结合串口输出将相机和其它硬件组成闭环回路.这里介绍的是一个简化

  • PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解

    摘要:Qt是常用的用户界面设计工具,而在Python中则使用PyQt这一工具包,它是Python编程语言和Qt库的成功融合.这篇博文通过图文详细介绍在PyCharm中如何完整优雅地安装配置PyQt5的所有工具包,主要内容包括.PyQt5.P y Q t 5 tools的依赖包安装和Q t Designer.P y U I C.  PyRcc三个工具的设置.最后简单演示了PyQt5的调用方式及三个工具的使用方法,其目录如下: 前言 很多情况下需要为程序设计一个GUI界面,在Python中使用较多的

  • pyqt5对用qt designer设计的窗体实现弹出子窗口的示例

    1. 用qt designer编写主窗体,窗体类型是MainWindow,空白窗口上一个按钮.并转换成mainWindow.py # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'f.ui' # # Created by: PyQt5 UI code generator 5.9 # # WARNING! All changes made in this file will be lost!

  • PyQt5结合QtDesigner实现文本框读写操作

    本文主要介绍了PyQt5结合QtDesigner实现文本框读写操作,分享给大家,具体如下: 主要内容: 1.读.写 输入控件(Input Widgets)中的内容(str) 2.保存数据到txt文件 3.从txt文件中读内容,与输入控件中内容比较 将上述各种输入控件(Input Widgets)中的内容保存到txt文件中: Ui文件 # -*- coding: utf-8 -*- from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Dialog

  • PyCharm+PyQt5+QtDesigner配置详解

    关于 最近要在python下做可视化界面的设计,想到之前用QtDesigner来画界面很是方便,当时画完之后都要手动在终端输入 pyuic5 -o 1.py 1.ui 来把.ui文件转换为.py的代码再进行编辑,不是很方便,联想到要是能在PyCharm下完成所有工作就好了,所以就有了这篇博客,简单记录下,不够详细的地方请谅解. 配置前提 PyCharm (这个不多说,官网下载安装) Anaconda 1.8.7(强烈安利,很好的python包管理平台,官网下载安装) python 3.6.5 (

  • 解决pycharm19.3.3安装pyqt5找不到designer.exe和pyuic.exe的问题

    安装pyqt5和pyqt5-tools 利用pyqt5编写GUI界面,首先需要下载pyqt5以及相应的pyqt5-tools,我的python版本是python38. 方法一:在pycharm中安装 打开pycharm,选中自己的项目,点击左上角"File" ,选择"Settings",点击进入,接下来的操作如下图所示: 接下来点击加号,安装我们需要的pyqt5和pyqt5-tools,具体操作如下图所示: 到这一步之后,我们只需要静静等待pycharm安装好就可以

  • python3+PyQt5+Qt Designer实现界面可视化

    前言 以前制作一个Python窗体界面,我都是用GUI窗口视窗设计的模块Tkinter一点一点敲出来的,今天朋友问我有没有Python窗体的设计工具,"用鼠标拖拖"就能完成窗体设计,我查了查相关资料,果然有一款好用的工具--Qt Designer. 1.安装Qt Designer 这里需要安装两个东西:PyQt5和PyQt5-tools: 安装PyQt5:打开CMD或者PowerShell,在命令窗中输入 pip install PyQt5 执行结果如下: 安装PyQt5-tools:

  • PyQt5 关于Qt Designer的初步应用和打包过程详解

    目录 Qt Designer的介绍 1. 缘由 2. 搭建 2.1. 安装 2.2. 打开 2.3. 设计 2.4. 转换 3. 效果 3.1. 引用 3.2. 启动 3.3. 打包 3.4. 触发 Qt Designer的介绍 在PyQt中编写UI界面可以直接通过代码来实现,也可以通过Qt Designer来完成.Qt Designer的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现了开发的便捷.Qt Designer中的操作方式十分灵活,其通过拖拽的方式放置控件可以随时查看控件效果

  • python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例

    在下面这3篇文章中我们给出了手工输入代码的信号与槽的使用方法,因为采用这种方法介绍时,会简单一些,如果使用Qt Designer来介绍这些功能,那么任何一个简单的功能都会使用xxxx.ui xxxx.py call_xxxx.py三个文件 来实现,这样内容会显得很乱 python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例 python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例 python GUI库图形界面开发之PyQt5信号与槽的高级

  • Python深度学习实战PyQt5安装与环境配置过程详解

    目录 1. PyQt5 图形界面开发工具 1.1 从 CLI 到 GUI 1.2 PyQt5 开发工具 2. 安装 PyQt5 和 QtTools pip 安装 PyQt5 pip 安装 QtTools 3. QtDesigner 和 PyUIC 的环境配置 3.1 在 PyCharm 添加 Create Tools 3.2 添加 QtDesigner 工具 3.3 添加 PyUIC 工具 4. QtDesigner 和 PyUIC 的快速入门 4.1 QtDesigner 的启动和入门 新建一

  • Qt实现小功能之复杂抽屉效果详解

    目录 功能讲解 自定义标题widget 标题名称控件的创建 QCheckBox控件的创建 自定义内容Widget 创建显示高度描述控件 QScrollArea中widget实现 QScrollArea子窗口的提升 在Qt自带的控件中,也存在抽屉控件:QToolBar.但是,该控件有个缺点:一次只能展开一个抽屉信息,无法实现多个展开.为此,实现了如下效果的程序: 下面对这种实现效果进行讲解~ 功能讲解 开发环境:VS2017 + Qt5.14.2 64位 实现的核心技术: 1:QScrollAre

  • C++ Qt之halcon读取像素项目过程详解

    项目环境:win10,qt5.14,halcon20 功能:1.读取指定图像2.读取指定目录下的图像 项目配置文件 QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 # The following define makes your compiler emit warnings if you use # any Qt feature that has been marked depreca

  • Python PyQt5实战项目之文件拷贝器的具体实现详解

    目录 简介 UI设置 主要逻辑 信号与槽 成果展示 简介 写了一个简单的文件夹内容下所有文件复制到另一个文件夹内,主要逻辑代码是来自<2小时玩转python多线程编程>中的一个章节. UI设置 def ui_init(self): ''' 界面的函数 ''' self.setWindowTitle('拷贝器') self.resize(600,400) self.setMinimumSize(600,400) # 设置窗口的最小值 '''控件''' self.root_btn = QPushB

  • QT中对Mat类的一些操作详解

    目录 一.类型转换 二.保存至数据库 一.类型转换 opencv在QT中的应用通常会涉及到这三者的转换,即Mat.QImage.QPixmap.下面分别给出了 Mat转QImage QImage转Mat Mat转QPixmap 1️⃣:Mat转QImage QImage MainWindow::MatToImage(const Mat &m) //Mat转Image { switch(m.type()) { case CV_8UC1: { QImage img((uchar *)m.data,m

  • 基于Qt OpenCV的图像灰度化像素操作详解

    效果图 实现代码 #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<opencv2/opencv.hpp> using namespace cv; QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACE class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *

  • Qt利用QDrag实现拖拽拼图功能详解

    目录 一.项目介绍 二.项目基本配置 三.UI界面设置 四.主程序实现 4.1 main.cpp 4.1 mainwindow.h头文件 4.2 mainwindow.cpp源文件 4.3 PiecesList类 4.4 PuzzleWidget类 五.效果演示 一.项目介绍 本文介绍利用QDrag类实现拖拽拼图功能.左边是打散的图,拖动到右边进行复现,此外程序还支持手动拖入原图片. 二.项目基本配置 新建一个Qt案例,项目名称为“puzzle”,基类选择“QMainWindow”,取消选中创建

  • Qt利用QJson实现解析数组的示例详解

    目录 前言 第一步:进行数据转换 第二步:将字符串转成QJsonDocument格式 第三步:解析json数据 前言 现在有这样一个json结构,需要使用QJson来解析,结构如下: "code": "0001", "descrip": "文本描述1详细描述", "id": "1", "title": "文本1标题", "type&quo

随机推荐