​Qt for Python 入门¶​

2023-11-09

本页重点介绍如何从源代码构建Qt for Python,如果你只想安装PySide2。 与你需要运行:pip

pip install pyside2

有关更多详细信息,请参阅我们的快速入门指南。此外,您可以 查看与项目相关的常见问题解答

一般要求

  • Python:3.5+ 和 2.7

  • Qt:建议使用 5.12+

  • libclang:libclang 库,推荐:PySide10 2.5 版本 15。 可以在此处下载它的预构建版本。

  • CMake:需要 3.1+。

每个平台的指南

有关特定于平台的说明,请参阅以下页面:

正常的构建命令如下所示:

python setup.py install --qmake=/path/to/qmake \
                        --ignore-git \
                        --debug \
                        --build-tests \
                        --parallel=8 \
                        --make-spec=ninja \
                        --verbose-build \
                        --module-subset=Core,Gui,Widgets

这将使用调试符号(包括测试)构建和安装项目, 使用ninja(而不是make),并且只考虑QtCore的模块子集,QtGUI 和 QtWidgets。

需要考虑的其他重要选项包括:

  • --cmake,以指定 cmake 二进制文件的路径,

  • --reuse-build,以仅重建修改后的文件,

  • --openssl=/path/to/openssl/bin,以对 OpenSSL 使用不同的路径,

  • --standalone,将Qt库复制到最终包中 使其在其他机器上工作,

  • --doc-build-online,以使用联机模板构建文档。

测试安装

安装完成后,您将能够执行我们的任何示例:

python examples/widgets/widgets/tetrix.py

运行测试

使用该选项将使我们能够运行项目内的所有自动测试:--build-tests

python testrunner.py test > testlog.txt

注意

在Windows上,不要忘记在你的路径中有qmake。 (set PATH=E:\Path\to\Qt\5.15\msvc2017_64\bin;%PATH%)

您还可以通过运行以下命令来运行特定测试(例如):qpainter_test

ctest -R qpainter_test --verbose

构建文档

从 5.15 开始,有两个选项可用于构建文档:

1. 构建仅限 rst 的文档(无 API)

解析Qt标头以生成PySide API文档的过程可能需要几个时间。 分钟,这意味着修改我们当前拥有的 RST 文件的特定部分可能会 成为一项艰巨的任务。

为此,您可以在虚拟环境中安装,并执行以下命令:sphinx

python setup.py build_rst_docs

这将生成一个具有以下结构的目录:html/

html
└── pyside2
    ├── index.html
    ├── ...
    └── shiboken2
        ├── index.html
        └── ...

因此,您可以在浏览器上打开主页以检查生成的 文件。html/pyside2/index.html

这在更新文档的一般部分、添加教程、 修改构建说明等。

2. 构建文档(rst + API)

该文档是使用 qdoc 生成的,以获取 API 信息,以及本地 Python 相关注释的狮身人面像

系统需要 和 ,也在 Python 环境中,并且需要在运行安装过程之前安装:libxml2libxsltsphinxgraphviz

pip install graphviz sphinx

安装后,命令需要在 PATH 中,否则, 该过程将失败。还可以选择在系统范围内安装。graphvizdotgraphviz

由于该过程依赖于Qt安装,因此您需要指定目录的位置 您将与位于:qtbaseqmake

export QT_SRC_DIR=/path/to/qtbase

构建过程完成后,您可以转到生成的目录,然后运行:*_build/*_release/pyside2

make apidoc

注意

make 目标以 QCH(Qt 创建者帮助)格式构建离线文档 默认情况下。您可以使用配置选项切换到构建以供在线使用。apidoc--doc-build-online

最后,您将获得一个包含所有生成文档的目录。离线 帮助文件和 可以移动到您选择的任何目录。你 可以在构建目录中找到,.htmlPySide.qchShiboken.qchShiboken.qch*_build\*_release\shiboken2\doc\html

查看脱机文档

离线文档(QCH)可以使用Qt Creator IDE或Qt助手查看,即 用于查看QCH文件的独立应用程序。

要使用Qt Creator查看QCH,请按照使用Qt Creator帮助模式中概述的说明进行操作。如果您选择 请改用Qt助手,在启动前使用以下命令注册QCH文件 Qt助手:

助手 -注册 PySide.qch

注意

Qt Assistant 使用 QTextBrowser 后端渲染 QCH 内容,该后端支持 CSS样式的子集,但是,Qt Creator提供了另一种基于litehtml的样式。 后端,提供更好的浏览体验。目前,这不是默认设置 后端,因此您必须选择litehtml后端 明确在 中的选项卡下。GeneralQt Creator >> Tools >> Options >> Help

使用内部工具

可以在存储库内的目录下找到一组工具。tools/pyside-setup

  • checklibs.py:用于分析 Mach-O 二进制文件的动态库依赖项的脚本。 要使用此实用程序,只需运行:

    python checklibs.py /path/to/some.app/Contents/MacOS/Some
    

    此脚本是从此存储库中获取的。

  • create_changelog.py:用于创建可在目录中找到的更改日志的脚本。用法:dist/

    python create_changelog.py -r 5.15.1 -v v5.15.0..5.15 -t bug-fix
    
  • debug_windows.py:此脚本可用于找出为什么 PySide2 模块 无法加载各种DLL错误,例如缺少DLL或DLL中缺少符号。

    您可以将其视为 / 的 Windows 版本。lddLD_DEBUG

    在它下面使用命令行调试器和工具,两者都 与最新的 Windows 套件一起安装。cdb.exegflags.exe

    目的是要求用户在遇到 PySide2 导入不起作用时运行此脚本 窗户。然后,用户应提供生成的日志文件。

    顺便说一下,它也可以用于任何Windows可执行文件,而不仅仅是Python。 要使用它,只需运行:

    python debug_windows.py
    
  • missing_bindings.py:此脚本用于比较 PySide2 和 PyQt5 的状态 关于可用的模块和类。此内容显示在我们的维基页面中, 并且可以按如下方式使用:

    python missing_bindings.py --qt-version 5.15.1 -w all

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

​Qt for Python 入门¶​ 的相关文章

  • 如何将本机 popcount 与 numba 一起使用

    我正在使用 numba 0 57 1 我想在我的代码中利用本机 CPU popcount 我现有的代码太慢 因为我需要运行它数亿次 这是一个 MWE import numba as nb nb njit nb uint64 nb uint6
  • 重新索引错误没有意义

    I have DataFrames大小在 100k 到 2m 之间 我正在处理这个问题的框架是如此之大 但请注意 我必须对其他框架执行相同的操作 gt gt gt len data 357451 现在这个文件是通过编译许多文件创建的 所以它
  • 如何为 Intellij/PyCharm 设置 PYTHONSTARTUP 脚本

    我尝试添加PYTHONSTARTUP环境变量 我还尝试了自定义启动脚本 但更令人惊讶的是 这also没有工作 npa别名无法识别 出于一点绝望 我什至尝试添加到interpreter options 那什么也没做 实际上是什么Interpr
  • Python sqlite3参数化删除表

    我在 python 中删除 sqlite3 表时遇到问题 我正在使用标准sqlite3模块 self conn sqlite3 connect sql drop table self conn execute sql u table nam
  • 蜘蛛内的Scrapyd jobid值

    Scrapy 框架 Scrapyd 服务器 我在获取蜘蛛内部的 jobid 值时遇到一些问题 将数据发布到后http localhost 6800 schedule json http localhost 6800 schedule jso
  • 我应该为 MySQL 使用什么 python 3 库? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 据我所知 MySQLdb 仍然没有移植到 Python 3 pypy 上似乎有另一个名为 PyMySQL
  • Spyder 导入模块出错

    我正在尝试在 Spyder 中使用 sklearn 一开始 当我尝试导入它时 我收到 ImportError No module named sklearn 然后我用 PYTHONPATH 管理器设置 PATH 然后使用工具菜单中的 更新模
  • 小数缓存是Python规范中定义的还是一个实现细节?

    Python 似乎有一个所谓的 小数字缓存 用于存储 5 到 256 范围内的数字 我们可以使用以下程序来演示这一点 for i in range 7 258 if id i id i 0 print i is cached else pr
  • Django 未在 404 页面上应用应用程序中的 CSS 文件

    姜戈3 0 8 Python 3 7 x 我有一个包含一些应用程序的 Django 项目 我正在尝试为 400 403 404 500 错误制作一些 默认 错误页面 我已经这样做了 并显示了适当的模板 但没有任何样式或 JS 在 404 错
  • Seaborn 热图中的自定义调色板间隔

    我正在尝试绘制一个heatmap https seaborn pydata org generated seaborn heatmap html使用seaborn库 绘图函数如下所示 def plot confusion matrix da
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 如何使用 xlrd 将新列和行添加到 .xls 文件

    如何向 xlrd 中的工作表添加新列和 或行 我有一个使用 open workbook 读取的 xls 文件 我需要在第一张表中添加一个新列 bouncebacks 然后在该表中添加新行 但我在 xlrd 文档中找不到任何显示如何添加新行和
  • python-polars 通过分隔符将字符串列拆分为许多列

    在 pandas 中 以下代码会将 col1 中的字符串拆分为许多列 有没有办法在极地做到这一点 d col1 a b c d a b c d df pd DataFrame data d df a b c d df col1 str sp
  • PyCharm 无法识别字典值类型

    我有一个简单的代码片段 其中我将字典值设置为空列表 new dict for i in range 1 13 new dict i 现在 如果在下一行的循环内我会输入new dict i 并添加一个点 我希望 PyCharm 向我显示可用于
  • 如何在数据框中绘制包含三列的无向图,形成 3 种不同类型的节点(三方)?

    我正在尝试使用三个不同的列表绘制网络的可视化 这三个列表形成 3 种类型的节点 下面的代码正在运行 如图所示 需要两个列表 用户 ID 评分 但是 我希望我的图表是三部分的 即 user userId review ratings prod
  • 如何加速 pandas 字符串函数?

    我正在使用 pandas 矢量化 str split 方法来提取从 上的拆分 返回的第一个元素 我还尝试使用 df apply 与 lambda 和 str split 来产生等效的结果 使用 timeit 时 我发现 df apply 的
  • Qcut Pandas:ValueError:Bin 边缘必须是唯一的

    我使用 Pandas 中的 Qcut 将数据离散化为大小相等的存储桶 我想要有价格桶 这是我的数据框 productId sell prix categ popularity 11997 16758760 0 28 75 50 524137
  • Python:帮助(numpy)在退出时导致段错误

    我遇到了一个奇怪的现象 在 python 解释器中 我执行以下操作 gt gt gt import numpy gt gt gt help numpy 帮助显示正确 但一旦我按 q 返回解释器 Segmentation fault core
  • 如何使用 pygame.mixer 重复音乐?

    我创建了以下使用 pygame mixer 播放 mp3 音乐的代码 然而 音乐不会重复 有什么想法可以让音乐重复播放吗 这是代码 playlist list playlist append put music here mp3 playl
  • django admin 中内联模型的分页器

    我有这个简单的 django 模型 由一个传感器和特定传感器的值组成 每个日射强度计的值数量很多 gt 30k 是否可以以某种方式分页PyranometerValues在特定日期或一般情况下将分页器应用于管理内联视图 class Pyran

随机推荐

  • Linux用户切换到root后运行图形程序报错(*GLib-GIO-CRITICAL **)

    用su切换到root用户后 运行某些带图形的程序 会报如下错误 ImageProc qt 3158 GLib GIO CRITICAL g dbus connection register object assertion G IS DBU
  • iOS进阶_密码学(二.钥匙串访问)

    网络开发中的原则 在网络上不允许传输用户的明文隐私数据 在本地不允许保存用户的明文隐私数据 类似于QQ 微信的记住密码 在客户端本地保存用户加密后的密码 NSUserDefaults 明文保存才能反算 能够反算的算法 钥匙串访问 开放给开发
  • Fortran 微分方程求解 --ODEPACK

    最近涉及到使用Fortran对微分方程求解 我们知道MATLAB已有内置的函数 比如ode家族 ode15s 对应着不同的求解办法 通过查看odepack的官方文档 我尝试使用了dlsode求解刚性和非刚性常微分方程组 首先是github网
  • Unity3d防止按键劫持导致无法响应点击事件

    起因 项目上线之后 接到一些玩家反馈 在登录界面点击没有响应 无法登陆的 小米 魅族等应用商店上的差评也大多集中于此 心里一万只草泥马在奔腾 排查问题 首先 排查逻辑代码 找出是谁写的代码 大概会被拿去祭天吧 然而并没有 逻辑代码并没有问题
  • FastCGI处理自定义HTTP头

    FCGX中 自定义头可以获取环境变量获得 但是名字前面要加入HTTP 字母全部大写 例如 自定义头username 在fastcgi的FCGX中 变为 HTTP USERNAME 可以用FCGX GetParam获取单个环境变量 头信息在F
  • 使用高德地图(点标记)完成vue2项目

    目录 前言 官网中的代码 项目中的代码 效果图 代码 配置 前言 由于项目 中有要使用高德地图的需求 我就 傲娇的说 我会使用百度地图 可以改为百度地图不 最终的结果就是要用高德地图 后端小哥哥还特别好的安慰我说 高德地图的用法跟百度地图的
  • 上采样和下采样

    分辨率 是屏幕图像的精密度 是指显示器所能显示的像素的多少 由于屏幕上的点 线和面都是由像素组成的 显示器可显示的像素越多 画面就越精细 同样的屏幕区域内能显示的信息也越多 可以把整个图像想象成是一个大型的棋盘 而分辨率的表示方式就是所有经
  • c#笔记2018-12-27

    using System 2018 12 27 c 学习笔记 1 c 判断if else if switch 2 循环while for do while 3 循环实例 for循环99乘法表 while 循环99乘法表 do while 循
  • 关于contenteditable = true中光标异常判定的解决方法

  • Eclipse和PyDev搭建完美Python开发环境(Windows篇)

    十一长假在家闲着没事儿 准备花点时间学习一下Python 今儿花了一个下午搭建Python的开发环境 不禁感叹 开源的东西就是麻烦啊 唉 可怜我们这些被微软宠坏了的开发人员 为什么不用别的IDE呢 IDLE是小打小闹用的 那个WingIDE
  • 如何选用GPU云服务器?

    1 相关知识了解 1 1 了解厂家 1 1 1 面向个人的平台 名称 特点 极链AI云 微信绑定送100 学生200 1024Lab云 便宜 国外 DBC支付 不知道是啥 不考虑 矩池云GPU VNC远程访问图形化桌面 操作简单 gpu种类
  • ls命令用法总结

    ls 命令可以说是linux下最常用的命令之一 a 列出目录下的所有文件 包括以 开头的隐含文件 b 把文件名中不可输出的字符用反斜杠加字符编号 就象在C语言里一样 的形式列出 c 输出文件的 i 节点的修改时间 并以此排序 d 将目录象文
  • idea的target文件夹不见了

    1 第一种方法 在2位置打上 2 第二种方法 在5里面寻找target 并删掉 3 总结 目前遇到的就这两种情况 第二种情况5中用 分开的每一个都是忽略的文件或文件夹 像 git文件 idea文件夹都可以在这里配置忽略 我知道的作用是在pr
  • Unity Xbox360 Input

    1 资料收集 2 Unity中增加键值注册 3 A键值 4 B键值 5 X键值 6 Y键值 7 LeftBumper 键值
  • 思考卷积神经网络(CNN)中各种意义

    只是知道CNN是不够 我们需要对其进行解剖 继而分析不同部件存在的意义 CNN的目的 简单来说 CNN的目的是以一定的模型对事物进行特征提取 而后根据特征对该事物进行分类 识别 预测或决策等 在这个过程里 最重要的步骤在于特征提取 即如何提
  • AltiumDesigner 绘制PCB常见问题

    1 普通过孔16mil 24mil 2 PCB双层板看到上面有大量的过孔 很多都没有用到的 这些过孔有什么用啊 答 通过大量过孔连接顶层和底层的铺铜 也就是将顶层和底层的 地 良好的连接 为接地点提供更多回路 以提高整个电路板的抗干扰能力
  • Rpm相关操作

    安装rpm包 rpm ivh your package rpm 安装过程中可能出现下面的警告或者提示 conflict with 可能是要安装的包里有一些文件可能会覆盖现有的文件 缺省时这样的情况下是无法正确安装的 强制安装即可 rpm f
  • 《数据结构与算法》实验:排序算法实验比较——选择排序 & 堆排序

    数据结构与算法 实验和课程Github资源 数据结构与算法 实验 线性结构及其应用 算术表达式求值 数据结构与算法 实验 树型结构的建立与遍历 数据结构与算法 实验 图结构的建立与搜索 数据结构与算法 实验 查找结构的实验比较 二叉查找树B
  • 同步通讯和异步通讯(简单理解)

    同步通信和异步通信 简单理解 注 本篇文章只是告诉你什么是同步通信 什么是异步通信 即使没有计算机基础的同学也适合阅读 同时也能帮助计算机专业同学更好理解这个知识点 但是如果想深入学习 还需自己翻阅资料 一 电脑完成一个读命令需要的步骤 主
  • ​Qt for Python 入门¶​

    本页重点介绍如何从源代码构建Qt for Python 如果你只想安装PySide2 与你需要运行 pip pip install pyside2 有关更多详细信息 请参阅我们的快速入门指南 此外 您可以 查看与项目相关的常见问题解答 一般