首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

笔记 | Python环境下的GUI编程常用包

前言 Python的使用频率和范围越来越大,在一些开发工作中由于需要可视化的图形界面,常常需要进行图形用户界面(Graphic User Interface, GUI)开发。...例如,目前最火热的大模型应用,常常是以一个网页界面进行操作和展示,从而免去了控制台或接口操作的复杂性。因此本文总结记录了我接触了解过的GUI开发相关工具和依赖库。...本文将Python开发中的GUI分为了原生GUI和Web GUI两大类,前者指的是以Windows或Android系统程序窗口的形式展示的界面,其界面风格受具体系统影响;后者是基于Web技术展示的网页界面...此外为了原生GUI能够方便地移植到其他用户的系统进行使用,本文还简单介绍了可执行程序打包工具。 原生GUI Tkinter Python中自带的免费开源GUI框架,无需额外安装即可使用。...有较多的主题和美化资源。 wxPython 2 免费开源GUI框架,需额外安装使用。具备可视化界面设计器3 4。上手难度适中。 5 PyQT6 个人与商业双重许可的跨平台GUI框架,需额外安装使用。

13010

Lerna+webpack+juction来拆分组件库为多个单独的npm包

那么其他popup也打包进去, 就浪费带宽了, 所以需要一个每个popup单独发布到npm上去, 但是把依赖分开的时候之后开发就是带来不便, 比如一个包更新了, 需要在另一个手动更新, 为了解决这个不便...src/components/popup-* 生成的包是vc-popup-*, 入口是index.js 每个包的安装方式都是如下 import Vue from 'vue' import popup from...'vc-popup-*' Vue.use(popup) 拆包之后popup-*包和包之间都是属于外部依赖 在Vue.use的时候的install函数会先安装依赖的popup 概要 通过js初始化popup...-*目录和package.json 通过js生成每个popup的entry[install.js] 配置webpack.pkg.conf.js, 配置多入口 lerna设置包之间的依赖, 其他的包都需要依赖...而我的vc-popup结构是一个混合体, 一开始没有考虑做拆包, 后面加上的, 所以...拆出来的包仅仅包含经过编译的文件...也没有做js, css的分离... ?

1.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Lerna+webpack+juction来拆分组件库为多个单独的npm包

    仅仅是popup的组件集, 不是完整的组件库, 所以很多时候用户仅仅想使用某个popup, 那么其他popup也打包进去, 就浪费带宽了, 所以需要一个每个popup单独发布到npm上去, 但是把依赖分开的时候之后开发就是带来不便...src/components/popup-* 生成的包是vc-popup-*, 入口是index.js 每个包的安装方式都是如下 import Vue from 'vue' import popup from...'vc-popup-*' Vue.use(popup) 拆包之后popup-*包和包之间都是属于外部依赖 在Vue.use的时候的install函数会先安装依赖的popup 概要 通过js初始化popup...-*目录和package.json 通过js生成每个popup的entry[install.js] 配置webpack.pkg.conf.js, 配置多入口 lerna设置包之间的依赖, 其他的包都需要依赖...感觉mint-ui可以说是最标准的组件库了, 在构建层面来说, 拆出来的包同时是包含源码的, package.json的出口是经过编译的

    3.6K101

    ChainForge:衡量Prompt性能和模型稳健性的GUI工具包

    ChainForge是一个用于构建评估逻辑来衡量模型选择,提示模板和执行生成过程的GUI工具包。ChainForge可以安装在本地,也可以从chrome浏览器运行。...在聊天节点中,可以使用以前使用的LLM,也可以定义新的LLM。 对于每个聊天节点,可以定义一个检查节点来查看LLM响应。...响应选择器有一个分组列表或表的选项,可以在下面看到所引用的每个模型的输出。...总之,ChainForge是一个用于对大型语言模型(LLM)提示进行测试的开源可视化编程环境,用于分析和评估LLM响应,功能包括:快速有效地同时查询多个LLM,测试提示的想法和变化;比较不同提示排列和模型的响应质量...,选择最适合你的用例的提示和模型。

    27340

    使用GUI工具高效构建你自己的Nuget包丰富包的基础信息添加要包含的文件The end

    写这篇文章的原因是我在学习构建nuget包的时候,发现了一个官方推荐的GUI工具,而官方的工具介绍文章已经过时,一些地方和现在最新版本的工具有些差异,所以特意利用假期最后一个下午写下来,希望能帮助更多的人...左边部分,可以录入一些包中的基础信息,包括: 包的ID:必须的唯一的ID,格式和C#命名空间规范相同,在你发布包的时候会去验证唯一性。...GUI工具还提供了很多快捷的方式,有待各自探索了。 ?...发布包 最后,使用GUI工具发布包当然是简单的令人发指了,点击工具栏中的File->publish就可以简单的发布你定义的包了,Puslish key来自于你的nuget账户的个人信息页面 ?...这个GUI工具是不是提供了很多的便捷?(怎么样?这个广告硬的可以把?),如果您喜欢这篇文章,记得在右下角给个“推荐”哦,如果您对上文中的广告的使用效果有什么意见和建议,请不吝拍砖,谢谢 The end

    1.3K60

    2分钟将Python转换为exe

    Pyinstaller是一个python软件包,它将Python应用程序及其所有模块/依赖项捆绑到一个软件包中。...这使用户更轻松地完成任务,因为用户可以在不安装Python解释器或计算机上任何模块的情况下运行捆绑的应用程序。...所述dist文件夹中包含的应用程序捆绑和一个可执行文件(.exe文件捆绑的应用程序文件夹中)的文件。 当您运行.exe文件时,您将获得与从python解释器运行时相同的输出。...这里的一个问题是,仍然不能单独共享.exe文件,因为要运行该.exe文件,需要有很多依赖文件。 Pyinstaller为我们提供了各种标志,可帮助我们修改捆绑的应用程序。...如果您的python程序是GUI应用程序,则您会注意到首先打开了一个控制台窗口,几秒钟后GUI应用程序启动了,这对用户体验不利。 这个问题可以通过 -w 选项使用来解决。 ?

    2.7K10

    Slint 1.0 正式发布,基于 Rust 的 原生 GUI 工具包已成熟

    Slint 的另一位联合创始人是 Simon Hausmann,他们两位在当时的挪威公司 Trolltech 工作时相识,该公司在被诺基亚收购之前创建了 Qt C++ 工具包。...Qt 虽然有其他语言的绑定,但根据 Goffart 的说法,“所有的文档,一切都在 C++ 上……像 C++ 这样的系统语言并不是 UI 的最佳语言。...它们是实现库本身的好语言,但应用程序的逻辑可以使用更高级的语言。”而且“在 15 到 20 年内,将很难找到 C++ 开发人员,”Hausmann 说。...最终,总共 50 位贡献者花费了三年,Slint 1.0 版正式推出,“这是一个重要的里程碑。与之前的版本相比,1.0 版仅引入了较小的 API 清理和错误修复,”宣布 新版本的团队博客文章 称。...dev-news-rust-based-slint-matures-and-shopify-cleans-up/ https://devclass.com/2023/04/06/interview-the-story-behind-slint-1-0-a-new-cross-platform-gui-toolkit-coded-in-rust

    1.1K20

    JDK源码解析之 Java.lang.Package

    Package对象的使用与其他反射类型完全不同,即我们不能在运行时创建或操纵包。我们可以使用Package对象来获取有关包的信息,诸如包的用途、谁创建了包、包的版本等。...实例存在null时,将使用getPackage()方法在给定的调用方的ClassLoader实例中按给定的包名称搜索一个包,然后搜索该System ClassLoader实例加载的包的捆绑包以确定命名的包...java.sql 该包提供了使用Java语言访问并处理存储在数据源(通常是一个关系型数据库)中的数据API。 java.awt 这两个包提供了GUI设计与开发的类。...java.awt包提供了创建界面和绘制图形图像的所有类,而javax.swing包提供了一组“轻量级”的组件,尽量让这些组件在所有平台上的工作方式相同。...javax.swing是 Java 为图形界面应用开发提供的一组工具包,是 Java 基础类的一部分。Swing 包含了构建图形界面(GUI)的各种组件,如: 窗口、标签、按钮、文本框等。

    60120

    python常用的几种GUI解析

    程序员可以有很多的选择,真正困难的是如何为用户创建一个简单的方式来与程序互动。 在python中有几种常用的GUI,我们来解析下。...1、Tkinter   如果有一个包可以被称为“Python的标准GUI工具包”,那么它一定就是Tkinter。Tkinter是Tcl / Tk的封装,是90年代初推出的流行图形界面。...WxPython是一种稍微更现代化的方法,它看起来比不同操作系统上的Tkinter更加接近原生,因为它不会尝试创建自己的一组小部件。...它的入门使用也比较容易,社区中的开发人员也在不断增长,但是需要注意的是,可能需要将wxPython与应用程序捆绑在一起,因为它不会随Python自动安装。   ...,这样的话,既可以注重知识的衔接性,也可以快速选定GUI进行软件的开发了。

    1.4K20

    初识 CTK

    这项倡议背后的基本思想是停止重新发明轮子,并驻力于那些构成每个生物医学软件包基础的方面,使研究人员能够专注于那些构成真正创新的特定功能。...例如,将其作为一个免费的开源软件(FOSS)在 BSD 许可下发布; 建立一个 CTK 临时指导委员会(由参加牛津会议的组织代表组成),负责监督定义范围的初始阶段和工具包的总体架构。...Plugin Framework:用于 C++ 的动态组件系统,以 OSGi 规范为模型。...CTK 的目标 如果说老王的小目标是先挣它一个亿,那么 CTK 的目标要比他小很多: 为医学成像提供一组统一的基本功能; 促进代码和数据的交互及结合; 避免重复开发; 在工具包(医学成像...Qt Qt 被用作 CTK 中的 GUI 工具包,以及诸如跨平台数据库访问的非 GUI 任务。 CMake CMake 被用作构建自动化工具以及 Package 系统。

    1.4K10

    使用PyInstaller创建Python可执行文件

    这就是我今天要向您展示如何做的事情。我们将使用我们之前创建的 Python 应用程序的代码(用于获取用户的输入并使用 GUI 将其写入文件)并从中创建一个方便的可执行文件。...安装 PyInstaller 接下来,我们需要安装 PyInstaller,它会读取您的 Python 代码,发现您的应用程序运行所需的每个模块和库,收集所有必要的东西(包括 Python 解释器),并将它们与您的代码组合成一个单独的文件夹或一个单独的可执行文件...将所有内容捆绑在一起 我将首先向您展示如何使用 PyInstaller 为您的应用程序创建捆绑包。所有这些都将包含在一个文件夹中,其中包含一个可执行文件和一个包含依赖项的文件夹。...请记住,我们用于输入 GUI 的代码如下所示: import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit...使用 cd input 命令进入 input 文件夹,然后你可以使用以下命令运行你的应用程序: ./input 输入 GUI 将会打开,你可以使用该应用程序。

    18010

    CTK插件框架学习1-编译CTK-MINGW

    经常使用Qt Coding,无意中接触到CTK,也就因此查到了所谓的OSGi,其中OSGi架构中的“模块化”和“热插拔”看起来很厉害的样子,于是就打算研究一下,以此系列博客作为学习笔记。 1....CTK插件框架简介 CTK Plugin Framework是用于C++的动态组件系统,以OSGi规范为模型。在此框架下,应用程序由不同的组件组成,遵循面向服务的方法。...然后,选择我的电脑->属性->高级系统设置->环境变量,修改Path环境变量,添加如下两个环境变量,也即是上一步安装的两个组件(mingw与cmake)的路径。 3....编译CTK 3.1 用cmake-gui产生makefile 查了下cmake目录下并没有ccmake程序,但是有个cmake-gui,用起来起始功能差不多。...打开cmake-gui,配置下source cod与build the binaries的路径 点击Configure按钮,在弹框中配置generator为MinGW Makefiles,然后点击

    2.1K20

    OSGi跨bundle调用,jaxb-impl异常

    问题 环境:JDK11 为什么是JDK11,由于jaxb是作为JDK8的一部分,在JDK11中已经被剥离出来需要单独引入。...项目中使用osgi架构,在处理xml解析的实现中使用了jdk自带的Javax.xml.bind包。...:(这里shade包是继承了jaxb的api,impl,runtime等包的合集) com.ruijie.osgi.thirdparty</groupId...;由于该路径下不存在这个类,所以直接报错 按理,jaxb包提供的META-INF/servies/javax.xml.bind.JAXBContextFactory这个文件存在的情况下,为什么还是没被识别到呢...猜测由于OSGi的隔离机制,在跨bundle使用过程中读取不到该配置文件。 解决 由于jaxb-api提供了SPI的扩展机制,基于他的实现很多,所以集成了如下的依赖解决该问题: <!

    25210

    【插件开发】—— 2 插件入门

    选择hello world.这是一个工具栏的按钮。  5 下一步,进行按钮的信息设置。 ?   默认会生成类的名字,路径(包名),以及工具栏按钮出发的消息提示。   ...1 导入了插件所需要用到的jar包 2 导入了插件依赖的库 3 源文件 4 插件按钮图片 5 插件的配置信息 MANIFEST.MF 插件的捆绑信息 Manifest-Version: 1.0...  SymblicName 是我们插件的包名   version 是插件的版本   Activator 是插件的激活类   Vendor 是插件开发者的信息   Bundle 是插件以来的库...; 4 import org.eclipse.ui.plugin.AbstractUIPlugin; 5 import org.osgi.framework.BundleContext; 6...24 /* 25 * (non-Javadoc) 26 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext

    2.4K90

    SDNLAB技术分享(二):从Toaster示例初探ODL MD-SAL架构

    步骤二:从eclipse导入sample工程(不需要导入整个ODL的代码,只要导入Sample文件夹里的代码即可) ? 步骤三:导入成功后maven会下载相关依赖jar包。...它们是ODL系统的osgi插件,可以安装、卸载。当上层应用APP开发好后,如果觉的现在用的这个toaster.provider插件不好用。...山西-文斌王 请问如果要是想实现一个toaster gui该如何做呢?gui要实现的功能是设置toaster的种类以及烤熟的程度。 gui属于页面设计,这块就是随意发挥了。...杭州-嗔戒 请问关于部署问题能不能讲一下,部署jar包的放置具体是怎么一个方式 wiki上的例子是作为osgi bundle安装在odl中的。...安装好后可以通过HTTP请求来调用restconf的toaster接口。 胖子@南京 不部署到控制器里面,单独的bundle可以吗 不可以,要依赖ODL的MD-SAL框架。

    956100

    用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤

    元素负责定义如何安装一个产品,而 元素负责定义如何安装一组包。...做两件事情: 将 .NET Framework 的安装加入到捆绑包的安装过程中; 将 .NET Framework 的安装包文件嵌入到捆绑包中或随包放到单独的文件中(可选)。...如果需要的话,我单独写一篇。 将 .NET Framework 的安装包文件嵌入到捆绑包中 如果你在前一个步骤中选择的是通过 Web 的方式来安装 .NET Framework,那么此步骤就不需要了。...而如果你打算将 .NET Framework 的安装包嵌入到捆绑包中或者随包放到单独的文件中,那么请继续操作。...对于 Bundle 捆绑包来说,这个目录指代了两种意思: 跟捆绑包的 exe 同一目录下的“redist”文件夹中; 捆绑包打包后包内的虚拟目录“redist”中。

    85310

    OSGI MANIFEST.MF详解

    MANIFEST.MF 文件存储的实际上是 Bundle 的元数据,可以定义 Bundle 的各种特征,同时能更好的对 Bundle 进行标识同时帮助用户对Bundle进行理解。...MANIFEST.MF文件格式: 1、属性声明一般为:name:value 2、换行缩进一个空格 3、每个子句(clause)进一步分解为一个目标(target)和一组由分号分隔的name-value对参数...com.xxx.xxx.core.Activator Bundle-Vendor: Ruijie Require-Bundle: org.eclipse.core.runtime, org.eclipse.osgi.services...Bundle-ManifestVersion bundle遵循规范的规则 1:OSGI的R3规范 2:OSGI的R4/R5规范 Bundle-Name bundle名称 Bundle-SymbolicName...设置lazy标识延迟加载该bundle Export-Package 对外暴露的Package Import-Package 引用包的信息 只有引用了这些包,才能让classloader装载 Fragment-host

    18010

    插件式开发架构综述

    这个载体作为应用的主入口,并根据各类插件的配置信息,将编译或打包后的插件加载到主体环境中并执行。开发新的插件,无需调整现有运行主体的代码和二进制包。...C++语言下的插件开发案例 笔者曾基于某国外通用产品,进行领域化定制。该产品基于C++/MFC开发,并提供SDK包和样例工程,辅助用户基于该产品的插件开发。...其中开发的基石Eclipse,就是基于OSGI规范进行开发。 4.1 OSGI简介 OSGi是基于java语言实现的开发期和运行期模块化技术。...模块层中bundle的特点: bundle 以 jar 包形式存在的模块化物理单元,包含了代码,资源文件和元数据(模块描述信息)。 bundle 是开发、部署 OSGi 应用的基本单元。...bundle 的核心是 META-NF 目录下的 MANIFEST.MF 文件。 bundle 定义了内部包的对外可见性。 每个 bundle 都有单独的类加载器。

    3.2K20
    领券