当前位置: 首页 > news >正文

Qt Designer客户端安装和插件集(pyqt5和pyside2)

GitHub - PyQt5/QtDesignerPlugins: Qt Designer PluginsQt Designer Plugins. Contribute to PyQt5/QtDesignerPlugins development by creating an account on GitHub.icon-default.png?t=O83Ahttps://github.com/PyQt5/QtDesignerPlugins

一、下载客户端

https://github.com/PyQt5/QtDesigner/releasesicon-default.png?t=O83Ahttps://github.com/PyQt5/QtDesigner/releases

二、下载插件

https://github.com/PyQt5/QtDesignerPlugins/releasesicon-default.png?t=O83Ahttps://github.com/PyQt5/QtDesignerPlugins/releases 

 三、解压

四、 打开客户端

五、自定义控件库

为防止出错,建议直接复制这个文件,进行替换修改。

新建一个demo_button_plugin.py文件,内容如下:

#!/usr/bin/env python"""
为 Qt Designer 提供的测试小部件插件。
"""
from PyQt5.QtCore import QSize
from PyQt5.QtGui import QIcon, QPixmap, QPainter, QImage
from PyQt5.QtDesigner import QPyDesignerCustomWidgetPlugin
from PyQt5.QtSvg import QSvgRenderer
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout# 我的小部件控件
class PyDemoButton(QWidget):"""自定义按钮"""def __init__(self, parent=None):super().__init__(parent)layout = QVBoxLayout()self.button = QPushButton("Click Me")layout.addWidget(self.button)self.setLayout(layout)# 测试小部件
if __name__ == "__main__":import sysapp = QApplication(sys.argv)clock = PyDemoButton()clock.show()sys.exit(app.exec_())# 插件注册
# TODO
class PyDemoButtonPlugin(QPyDesignerCustomWidgetPlugin):"""通过实现特定于 PyQt 的自定义插件类来为 Qt Designer 提供一个 Python 自定义插件。"""# __init__() 方法仅用于设置插件并定义其初始化变量。def __init__(self, parent=None):# TODOsuper(PyDemoButtonPlugin, self).__init__(parent)self.initialized = False# initialize() 和 isInitialized() 方法允许插件设置任何所需的资源,确保每个插件只能执行一次此操作。def initialize(self, core):if self.initialized:returnself.initialized = Truedef isInitialized(self):return self.initialized# 此工厂方法创建具有适当父级的新自定义小部件实例。def createWidget(self, parent):# TODOreturn PyDemoButton(parent)# 此方法返回此插件提供的自定义小部件类的名称。def name(self):# TODOreturn "PyDemoButton"# 返回此小部件所属的 Qt Designer 小部件框中的组名称。def group(self):# TODOreturn "PyQt Examples"# 返回用于在 Qt Designer 的小部件框中表示自定义小部件的图标。def icon(self):# TODOreturn QIcon(_logo_pixmap)# 返回一个简短的描述,作为自定义小部件的工具提示。鼠标悬停在空间盒中的控件时显示。def toolTip(self):return "这一个自定义的按钮"# 返回一个简短的描述,作为“这是什么?”帮助消息中的自定义小部件。def whatsThis(self):return "更加华丽的按钮"# 如果自定义小部件充当其他小部件的容器,则返回 True;否则返回 False。请注意,自定义容器的插件还需要提供 QDesignerContainerExtension 接口的实现,以便向 Qt Designer 添加自定义编辑支持。def isContainer(self):return False# 返回一个 XML 描述,描述自定义小部件实例的默认属性值。每个由此插件创建的自定义小部件都将使用此描述进行配置,将会呈现在Qt Designer的控件属性面板编辑器。def domXml(self):return '<widget class="PyDemoButton" name="demoButton">\n' \' <property name="toolTip">\n' \'  <string>自定义小按钮</string>\n' \' </property>\n' \' <property name="whatsThis">\n' \'  <string>一个好的按钮。</string>\n' \' </property>\n' \'</widget>\n'# 返回包含自定义小部件类的模块。它可以包括模块路径。转换成 Python 代码后,以此路径导入自定义小部件类。def includeFile(self):return "demoButton"# SVG图标 TODO
svg_content = """<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1729845139063" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="24308" xmlns:xlink="http://www.w3.org/1999/xlink" width="256" height="256"><path d="M762.77551 929.959184H261.22449c-40.75102 0-74.187755-33.436735-74.187755-74.710204v-288.914286c0-6.791837-5.22449-12.016327-11.493878-12.016327h-27.689796c-21.942857 0-40.75102-12.538776-49.110204-32.914285-8.359184-19.853061-3.657143-42.840816 11.493878-58.514286l341.159183-343.771429c15.673469-16.195918 37.616327-25.077551 60.604082-25.077551s44.930612 8.881633 61.126531 25.6L914.285714 463.412245c15.15102 15.673469 19.853061 38.661224 11.493878 58.514286-8.359184 20.37551-27.167347 32.914286-49.110204 32.914285h-27.689796c-6.269388 0-11.493878 5.22449-11.493878 12.016327v288.914286c-0.522449 40.75102-33.959184 74.187755-74.710204 74.187755zM512 135.836735c-12.016327 0-22.987755 4.702041-31.346939 13.061224L139.493878 492.669388c-5.22449 5.22449-3.657143 10.971429-2.612245 13.061224 1.044898 2.089796 3.657143 7.314286 10.971428 7.314286h27.689796c29.257143 0 53.289796 24.032653 53.289796 53.812245v288.914286c0 17.763265 14.628571 32.914286 32.391837 32.914285h501.55102c17.763265 0 32.391837-14.628571 32.391837-32.914285v-288.914286c0-29.779592 24.032653-53.812245 53.289796-53.812245h27.689796c6.791837 0 9.926531-5.22449 10.971428-7.314286 1.044898-2.089796 2.612245-7.836735-2.612245-13.061224L543.346939 148.897959c-8.359184-8.359184-19.330612-13.061224-31.346939-13.061224z" fill="#555555" p-id="24309"></path><path d="M663.510204 929.959184H360.489796v-219.428572c0-45.97551 37.616327-83.591837 83.591837-83.591836h135.836734c45.97551 0 83.591837 37.616327 83.591837 83.591836v219.428572z m-261.22449-41.795919h219.428572v-177.632653c0-22.987755-18.808163-41.795918-41.795919-41.795918H444.081633c-22.987755 0-41.795918 18.808163-41.795919 41.795918v177.632653z" fill="#555555" p-id="24310"></path></svg>"""
# 创建 QSvgRenderer 并加载 SVG 内容
svg_renderer = QSvgRenderer(svg_content.encode('utf-8'))
# 创建一个 QImage 用于渲染 SVG
image = QImage(QSize(svg_renderer.defaultSize()), QImage.Format_ARGB32)
image.fill(0)  # 清空图像
# 创建一个 QPainter 用于绘制 SVG
painter = QPainter(image)
svg_renderer.render(painter)
painter.end()
# 将 QImage 转换为 QPixmap
_logo_pixmap = QPixmap.fromImage(image)

六、将demo_button_plugin.py文件放入Qt Designer控件库中

八 .重启Qt Designer

相关文章:

Qt Designer客户端安装和插件集(pyqt5和pyside2)

GitHub - PyQt5/QtDesignerPlugins: Qt Designer PluginsQt Designer Plugins. Contribute to PyQt5/QtDesignerPlugins development by creating an account on GitHub.https://github.com/PyQt5/QtDesignerPlugins 一、下载客户端 https://github.com/PyQt5/QtDesigner/rel…...

基于边缘计算的智能门禁系统架构设计分析

案例 阅读以下关于 Web 系统架构设计的叙述&#xff0c;回答问题1至问题3。 【说明】 某公司拟开发一套基于边缘计算的智能门禁系统&#xff0c;用于如园区、新零售、工业现场等存在来访被访业务的场景。来访者在来访前&#xff0c;可以通过线上提前预约的方式将自己的个人信息…...

鸿蒙实现相机拍照及相册选择照片

前言&#xff1a; 1.如果你的应用不是存储类型或者相机拍照类型&#xff0c;你就需要用 kit.CameraKit Api 实现相机拍照和相册选择照片功能&#xff0c;如果你不用这个的话&#xff0c;你使用 picker.PhotoViewPicker &#xff0c;你就需要申请权限&#xff0c;那你提交应用审…...

「C/C++」C++17 之 std::filesystem::recursive_directory_iterator 目录及子目录迭代器

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...

智能EDA小白从0开始 —— DAY30 冉谱微RFIC-GPT

在科技日新月异的今天&#xff0c;电子设计自动化&#xff08;EDA&#xff09;行业正以前所未有的速度推动着半导体产业的革新与发展&#xff0c;引领着全球电子产业迈向更加智能化、高效化的未来。作为EDA领域的佼佼者&#xff0c;冉谱公司始终站在技术创新的前沿&#xff0c;…...

Android -- 调用系统相册之图片裁剪保存

前言 最近线上反馈&#xff0c;部分vivo手机更换头像时调用系统相册保存图片失败&#xff0c;经本人测试&#xff0c;确实有问题。 经修复后&#xff0c;贴出这块的代码供小伙伴们参考使用。 功能 更换头像选择图片&#xff1a; 调用系统相机拍照&#xff0c;调用系统图片…...

读《道德经》让人感到心胸气闷?董仲舒篡改

为什么读《道德经》会让人感到心胸气闷&#xff1f;难道是董仲舒篡改所致&#xff1f; 作为世界智慧源头的《老子》&#xff0c;享誉古今中外&#xff0c;是世界历史上最伟大的著作之一。 然而&#xff0c;很多人读《道德经》时会感到心胸气闷&#xff0c;这究竟是为什么呢&am…...

D52【python 接口自动化学习】- python基础之模块与标准库

day52 标准库 学习日期&#xff1a;20241029 学习目标&#xff1a;模块与标准库 -- 67 标准库&#xff1a;Python默认提供的便携功能有哪些&#xff1f; 学习笔记 标准库中的常见组件 如何通过官方文档学习标准 from urllib.request import urlopen with urlopen(http://ww…...

基于yolov8的布匹缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示&#xff1a; 基于yolov8的布匹缺陷检测系统&#xff0c;支持图像、视频和摄像实时检测【pytorch框架、python源码】_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于yolov8的布匹缺陷检测系统是在 PyTo…...

SQL Server 中,将单行数据转换为多行数据

在 SQL Server 中&#xff0c;将单行数据转换为多行数据通常涉及到将某个字段中的逗号分隔的值拆分成多行。这种操作通常称为“拆分”或“展开”&#xff08;Explode&#xff09;。以下是一些常用的方法来实现这一目标&#xff1a; 1. 使用内置函数 STRING_SPLIT 从 SQL Serv…...

解决数组两数之和问题与逻辑推理找出谋杀案凶手

给定一个整数数组nums和一个整数目标值target(2<nums.length<10^4)&#xff0c;请你在该数组中找出和为目标值target 的那两个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。 你可以按任意顺序返…...

uniapp的IOS证书申请(测试和正式环境)及UDID配置流程

1.说明 本教程只提供uniapp在ios端的证书文件申请&#xff08;包含正式环境和开发环境&#xff09;、UDID配置说明&#xff0c;请勿用文档中的账号和其他隐私数据进行测试&#xff0c;请勿侵权&#xff01; 2.申请前准备 证书生成网站&#xff1a;苹果应用上传、解析&#x…...

windows 安装apex_Nvidia Apex安装

参见windows 安装apex_Nvidia Apex安装 重点&#xff1a; 1、在安装前先检查一下&#xff0c;电脑的cuda版本和pytorch内的cuda版本是否一样&#xff0c;不一样的话就把低版本的进行升级&#xff1b; $ git clone https://github.com/NVIDIA/apex$ cd apex2、在保证cuda版本一…...

Laravel5 抓取第三方网站图片,存储到本地

背景 近期发现&#xff0c;网站上的部分图片无法显示&#xff0c; 分析发现&#xff0c;是因为引用的第三方网站图片&#xff08;第三方服务器证书已过期&#xff09; 想着以后显示的方便 直接抓取第三方服务器图片&#xff0c;转存到本地服务器 思路 1. 查询数据表&#xff0…...

DevOps和CI/CD以及在微服务架构中的作用

DevOps 和 CI/CD 是现代软件开发和运维中两个重要的概念,它们之间有紧密的联系,但也有不同的侧重点。以下是对这两个概念的详细介绍和比较。 1. DevOps 定义: DevOps 是一种文化、运动和实践,旨在通过促进开发(Development)和运维(Operations)团队之间的协作,提升软…...

Rust 力扣 - 5. 最长回文子串

文章目录 题目描述题解思路题解代码题解链接 题目描述 题解思路 从中心点先寻找和中心点相等的左右端点&#xff0c;在基于左右端点进行往外扩散&#xff0c;直至左右端点不相等或者越界&#xff0c;然后左右端点这个范围内就是我们找寻的回文串&#xff0c;我们遍历中心点&am…...

DDOS防护介绍

DDoS攻击的基本概念 分布式拒绝服务攻击&#xff08;DDoS&#xff09;是一种网络攻击方式&#xff0c;攻击者通过控制多个被感染的计算机&#xff08;僵尸网络&#xff09;同时向目标服务器发送大量的网络请求&#xff0c;导致目标服务器资源耗尽&#xff0c;无法正常提供服务…...

深入了解 kotlinx-datetime:配置与使用指南

深入了解 kotlinx-datetime&#xff1a;配置与使用指南 在Kotlin多平台开发中&#xff0c;处理日期和时间是常见的需求。kotlinx-datetime库提供了强大且简洁的API来帮助开发者应对这一挑战。本文将详细介绍如何配置kotlinx-datetime库&#xff0c;并通过生动的示例演示其核心…...

Qt编程技巧小知识点(6)根据 *IDN? 对程控仪器连接状态进行确认

文章目录 Qt编程技巧小知识点&#xff08;6&#xff09;根据 *IDN? 对程控仪器连接状态进行确认小结 Qt编程技巧小知识点&#xff08;6&#xff09;根据 *IDN? 对程控仪器连接状态进行确认 确定仪器连接问题&#xff0c;常用的是监测仪器的连接状态&#xff0c;如下代码所示&…...

【Android】Kotlin教程(4)

文章目录 1.field2.计算属性3.主构造函数4.次构造函数5.默认参数6.初始化块7.初始化顺序7.延迟初始化lateinit8.惰性初始化 1.field field 关键字通常与属性的自定义 getter 和 setter 一起使用。当你需要为一个属性提供自定义的行为时&#xff0c;可以使用 field 来访问或设置…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...