跳转到主要内容

Qt跨平台应用程序和UI框架的Python绑定

项目描述

Wheel Status Downloads Latest Version License https://readthedocs.org/projects/pip/badge/

简介

PySide是Python Qt绑定项目,提供对完整的Qt 4.8框架的访问,以及生成器工具,用于快速生成任何C++库的绑定。

PySide项目在公开环境中开发,所有设施都遵循现代开源项目的要求,如所有代码在git仓库中,公开的Bugzilla用于报告错误,以及公开的设计流程。我们欢迎任何贡献,无需转让版权。

PySide文档托管在http://pyside.github.io/docs/pyside/

兼容性

PySide需要Python 2.6或更高版本以及Qt 4.6或更好版本。

安装

安装前提条件

安装最新版的pip发行版:下载get-pip.py并使用python解释器运行。

在Windows系统上安装PySide

要在Windows上安装PySide,您可以选择以下选项之一

  1. 使用pip安装wheel二进制包

    pip install -U PySide
  2. 使用setuptools安装egg二进制包(已弃用)

    easy_install -U PySide

在Mac OS X系统上安装PySide

您需要先安装或构建Qt 4.8,请参阅Qt项目文档

或者您可以使用Homebrew并使用以下命令安装Qt

$ brew install qt

要在Mac OS X上安装PySide,您可以选择以下选项

  1. 使用pip安装wheel二进制包

    $ pip install -U PySide

在Linux系统上安装PySide

我们不提供Linux的二进制文件。请阅读在Linux系统上构建PySide部分中的构建说明。

构建PySide

反馈与参与

更改

1.2.4 (2015-10-14)

更改和错误修复的完整列表

PySide-setup

  • 确保以允许的python版本运行setup.py

1.2.3 (2015-10-12)

更改和错误修复的完整列表

PySide

  • 修复PYSIDE-164:修复在信号连接/发射时可能出现的死锁

Shiboken

  • 不要忽略拓扑中的类

  • 按声明顺序处理全局枚举

  • 按声明顺序返回枚举(添加了顺序)

PySide-setup

  • 在Linux和MacOS系统上,不再需要调用安装后脚本

1.2.2 (2014-04-24)

更改和错误修复的完整列表

PySide

  • 修复PYSIDE-190:如果全局QThreadPool.globalInstance()正在运行具有Python代码的QRunnable,则QCoreApplication在退出时会死锁

  • 将GlobalReceiver更改为显式地“使用”基类的[dis]connectNotify,以避免将其自己的重载隐藏掉。

  • 在初始化int[]时使用{}时,添加显式类型转换,这是C++11所要求的以“良好形成”

  • 修复PYSIDE-172:文件的多条规则

  • 在注册Qt资源系统中的qt.conf时,使用文件系统编码而不是假设的“ascii”

Shiboken

  • 删除导致sample_list测试失败的拒绝行

  • 从samplebinding测试中删除受保护的内容

  • 添加对“noexcept”关键字的解析

  • 修复函数拒绝(即支持重载)

  • 修复与python 3.3和3.4的构建问题

  • 文档:在Sphinx 1.2+中不再需要sphinx.ext.refcounting

  • 修复对具有“const”值的容器的问题

  • 修复OS X 10.9上的编译问题

  • 在定义类型时仅在PyTypeObject中使用字段

  • 修复处理宏定义时的缓冲区溢出问题

  • 修复“特殊”的包含处理

  • 修复查找容器基类

  • 重构并改进添加的功能解析

  • 在libsample/transform.cpp中解决MSVC的不足之处

  • 修复sample/transform单元测试的描述

  • 更改Handler::startElement中某些代码的包装和缩进以提高一致性

  • 修复 #% 替换 # > 9

  • 改进测试的依赖性

1.2.1 (2013-08-16)

主要更改

PySide

  • 内存中生成和注册qt.conf

Shiboken

  • 更好地支持方法超过9个参数

  • 避免在无名称的枚举值上获取 .name 属性时的段错误

PySide-setup

  • 切换到新的setuptools (v0.9.8),它已与Distribute再次合并,并适用于Python 2和3的单一代码库

  • 仅安装Windows SDK即可构建Windows二进制文件(不再需要Visual Studio)

  • 删除 –msvc-version 选项。所需的msvc编译器版本现在从Python解释器版本解析

1.2.0 (2013-07-02)

主要更改

PySide
  • 修复多个段错误并更好地跟踪Qt对象的生命周期

  • 修复多个内存泄漏

Shiboken
  • 将shiboken模块安装到site-packages

  • 修复多个段错误

PySide-setup
  • 在Windows系统上,当通过easy_install安装PySide二进制分发版时,不再需要调用post-install脚本来安装

  • 支持在Visual Studio命令提示符外构建Windows二进制文件

  • 当安装sphinx时构建和打包shiboken文档

更改和错误修复的完整列表

PySide
  • 正确设置PYTHONPATH以进行测试

  • 修复关机时的潜在段错误

  • 修复PYSIDE-61

  • 告诉Qt在PySide包中查找qml导入

  • 修复在C++11模式下构建的问题

  • 修复QByteArray内存泄漏

  • 在初始化插件文件夹时忽略QtCore导入错误

  • 在Windows上预加载OpenSSL DLL

  • 首先在PySide包中查找Qt的插件文件夹,而不仅仅是Qt的安装或构建文件夹

  • 添加显式类型转换以修复mingw编译错误

  • 在删除前使用QObject属性使包装器无效

  • 在删除前使metaObject包装器无效

  • 修复从C++ map类型到Python dict转换时的引用泄漏

  • 由于signals/disconnect_test.py依赖于pysidetest模块,因此更改pysitetest和signals目录的顺序

Shiboken
  • 从html文档中删除旧徽标

  • 在模块初始化错误时添加缺少的返回值

  • 不要破坏-Werror=non-virtual-dtor

  • 修复shiboken测试的最小绑定测试

  • 递减类型对象的引用

  • 修复使用shiboken.delete时的段错误

  • 使用非静态方法定义实例方法

  • 修复添加recursive_invalidate时引入的bug

  • 修复在C++11模式下构建的问题

  • 防止在invalidate中无限递归

  • 修复可能与垃圾回收器的潜在冲突

  • 修复退出时的潜在崩溃

  • 修复对unsigned long long的处理并提供单元测试

  • 添加测试以说明typedef enum的问题

  • 如果为PySide生成,则使用getWrapperForQObject进行转换

  • 允许在不包含Python共享库的情况下编译

  • 如果包装器为NULL,则使用父类的metaObject

  • 可选地断言使用有效包装器的已释放指针

  • 在启用pydebug时构建时查找python3库

  • 修复PYSIDE-108 bug并添加示例

  • PYSIDE-83 修复调用shiboken.dump时的段错误

  • 修复和测试PYSIDE-72 bug

  • 覆盖所有同名函数,而不仅仅是其中一个

  • 更新向量转换

  • 添加到最小的typedef示例

  • 将测试文件添加回cmake

  • 在删除它后不要使用它->second

  • 查找在第二个+基类中定义的函数修改。修复bug PYSIDE-54。

  • 为所有ObjectTypes设置默认哈希函数。修复bug PYSIDE-42。

  • 修复系统上未安装libxslt时的编译问题。

  • 修复SOABI的解析。SOABI在Linux上实现,但在Windows上未实现

  • 不要在dllexport类中使用内联方法,以使VC++满意

  • 在2.6+ os.tmpfile()在win32上失败,如果进程没有管理员权限,请使用SpooledTemporaryFile

PySide-setup
  • 支持在Visual Studio命令提示符外构建Windows二进制文件

  • 当安装sphinx时构建和打包shiboken文档

  • 支持Ubuntu 13.04和Fedora 18

  • 修复“develop” setuptools命令

  • 文档更新

  • 添加–build-tests选项以启用测试构建

  • 添加–jom和–jobs选项

  • 添加–no-examples选项以排除示例

  • 添加–relwithdebinfo选项以启用带调试信息的发布模式

  • 添加–ignore-git选项

  • 添加–make-spec选项以指定make生成器

1.1.2 (2012-08-28)

错误修复

  • 在信号发射期间,不要在回调之后获取返回类型

  • 在clear()方法中使QStandardModel::invisibleRootItem无效

  • QAbstractItemModel对selectionModel()的拥有策略错误

  • 改进QVector到python的转换

  • 如果找不到工具,则禁用docstring生成

  • 修复使用VC++编译PySide的一些问题

  • 将shiboken模块安装到site-packages

  • 修复系统上未安装libxslt时的编译问题。

  • 为所有ObjectTypes设置默认哈希函数

  • 修复调用shiboken.dump时的段错误

1.1.1 (2012-04-19)

主要更改

  • 统一工具链!不再需要GeneratorRunner和ApiExtractor,现在只需Shiboken即可编译PySide。

错误修复

  • 1105 Spyder使用HEAD失败

  • 1126 在signalInstanceDisconnect中引发异常时发生段错误

  • 1135 当使用QUiLoader加载自定义小部件并覆盖createWidget()时,发生SIGSEGV

  • 1041 QAbstractItemModel对selectionModel()的拥有策略错误

  • 1086 generatorrunner处理#include时发生段错误

  • 1110 并发错误导致GC堆损坏

  • 1113 如果从QML实例化,则用户定义的QML元素的构造函数中实例化QObject会导致崩溃

  • 1129 QStandardItem/QStandardItemModel关闭时发生段错误

  • 1104 QSettings与长整数有问题

  • 1108 当禁用字节码写入时,tests/QtGui/pyside_reload_test.py失败

  • 1138 通过继承QUiLoader导致“Internal C++ object already deleted”异常(再次)

  • 1124 QPainter.drawPixmapFragments的第一个参数应该是列表

  • 1065 QFileDialog文档中的无效示例

  • 1092 shiboken将自己命名为“generator”

  • 1094 shiboken不抱怨无效选项

  • 1044 示例中调用父构造函数不正确

  • 1139 由于线程状态(tstate)为NULL而导致退出时崩溃

  • PYSIDE-41 QModelIndex不可哈希

1.1.0 (2012-01-02)

主要更改

  • 新的类型转换方案

错误修复

  • 1010 Shiboken Cygwin补丁

  • 1034 在Windows上使用Python 3.2.2 32位编译PySide时出错

  • 1040 pyside-uic在使用前覆盖属性

  • 1053 使用.pro文件时,pyside-lupdate无法处理包含空格的Windows路径

  • 1060 通过继承QUiLoader导致“Internal C++ object already deleted”异常

  • 1063 在Linux上使用“QTextStream + QFile + QTextEdit”写入文件时出错

  • 1069 QtCore.QDataStream在写入Python字符串时静默失败

  • 1077 调用QSyntaxHighlighter.document()时应用程序退出崩溃

  • 1082 MacOS二进制链接已损坏

  • 1083 winId返回PyCObject,使其无法比较两个winId

  • 在套接字上写入unicode字符串时发生崩溃(段错误)

  • PixmapFragment和drawPixmapFragments未绑定

  • shiboken教程中没有示例

  • 1097 QtGui.QShortcut.setKey需要QKeySequence

  • 1101 在类型系统中报告无效函数签名

  • 902 通过Python模块公开Shiboken功能

  • 969 QAbstractItemView的viewOptions错误

1.0.9 (2011-11-29)

错误修复

  • 1058 PySide/QtUiTools/glue/plugins.h中的奇怪代码

  • 1057 valgrind检测到“Conditional jump or move depends on uninitialised value”

  • 1052 PySideConfig.cmake由于缺少SHIBOKEN_PYTHON_SUFFIX的默认值而包含无限循环

  • 1048 QGridLayout.itemAtPosition()在应该返回None时崩溃

  • 1037 shiboken在i386(和其他)上无法针对python 3.2(正常和-dbg)构建

  • 1036 Qt.KeyboardModifiers始终评估为零

  • 1033 QDialog.DialogCode实例和Dialo

  • 1031 QState.parentState()或QState.machine()导致退出时Python崩溃

  • 1029 qmlRegisterType失败,无法增加引用计数

  • 1028 QWidget 缺少 winId

  • 1016 调用返回非 QVariant 的 Q_INVOKABLE 方法是不可能的...

  • 1013 连接到 QSqlTableModel.primeInsert() 导致崩溃

  • 1012 启用硬化标志时出现 FTBFS

  • 1011 PySide Cygwin 补丁

  • 1010 Shiboken Cygwin补丁

  • 1009 GeneratorRunner Cygwin 补丁

  • 1008 ApiExtractor Cygwin 补丁

  • 891 ApiExtractor 不支持将 doxygen 作为文档生成的后端。

1.0.8 (2011-10-21)

主要更改

  • 实验性 Python3.2 支持

  • Qt4.8 测试版支持

错误修复

  • 1022 RuntimeError: 获取对象字符串时超过最大递归深度

  • 1019 覆盖 QWidget.show 或 QWidget.hide 不起作用

  • 944(QIcon(None).pixmap()) 时发生段错误

1.0.7 (2011-09-21)

错误修复

  • 996 Fedora 构建脚本中缺少 QtWebKit 的依赖

  • 986 文档链接

  • 985 为打包者提供版本化的 pyside-docs zip 文件以帮助打包

  • 981 QSettings 文档应强调 value() 在不同平台上的行为变化

  • 902 通过Python模块公开Shiboken功能

  • 997 QDeclarativePropertyMap 不工作。

  • 994 QIODevice.readData 必须使用 qmemcpy 而不是 qstrncpy

  • 989 pickling QColor 失败

  • 987 断开尚未连接的信号

  • 973 shouldInterruptJavaScript 插槽覆盖从未被调用

  • 966 QX11Info.display() 缺失

  • 959 不能将 QVariant 传递给 QtWebkit 桥接器

  • 1006 QLabel 初始化时发生段错误

  • 1002 PySide/Spyder 退出时发生段错误

  • 998 切换到另一个应用程序后,Spyder 发生段错误

  • 995 QDeclarativeView.itemAt 返回错误的引用。(导致 SEGFAULT)

  • 990 尝试断开未连接的信号时发生段错误

  • 975 可能存在内存泄漏

  • 991 各种类型的 __repr__ 都损坏了

  • 988 在 QTabWidget 的 currentChanged 信号中提供的类型在 1.0.6 中已更改

1.0.6 (2011-08-22)

主要更改

  • 新的文档布局;

  • 修复了上一次发布(1.0.5)中的某些回归;

  • 匿名连接期间的优化;

错误修复

  • 972 graphicsview 示例中的 anchorlayout.py 在退出时引发不可写的内存异常

  • 953 QTimer.singeShot 后回收 QObject 导致段错误

  • 951 QDeclarativeItem 子类未调用 ComponentComplete

  • 965 QtUiTools.QUiLoader.load 中发生段错误

  • 958 与资源文件相关的段错误

  • 944(QIcon(None).pixmap()) 时发生段错误

  • 941 将 QtCore.Qt 类型作为参数的信号具有无效的签名

  • 964 QAbstractItemView.moveCursor() 方法缺失

  • 963 “这是什么”未显示 QTableWidget 列表头信息,如 Qt Designer 中的那样

  • 961 QColor.__repr__/__str__ 应该更符合 Pythonic

  • 960 QColor.__reduce__ 对 HSL 颜色不正确

  • 950 实现 Q_INVOKABLE

  • 940 setAttributeArray/setUniformValueArray 不接受数组

  • 931 isinstance() 与信号实例失败

  • 928 100 多个 QGraphicItems 与信号连接导致减慢

  • 930 文档混淆了信号和函数。

  • 923 使 QScriptValue (或 QScriptValueIterator) 实现 Python 迭代器协议

  • 922 QScriptValue 的 repr() 应提供有关其数据的一些信息

  • 900 QtCore.Property 作为装饰器

  • 895 jQuery 版本过旧,分发代码去重破坏了文档搜索

  • 731 不能指定多个 'since' 参数

  • 983 copy.deepcopy 使用 QColor 时引发 SystemError

  • 57 与服务器交互 QtWebKit 窗口时出现 NETWORK_ERR

  • 873 已弃用的方法可能会发出 DeprecationWarning

  • 831 PySide 文档将为每个类提供“继承自”列表

1.0.5 (2011-07-22)

主要更改

  • 在“ui”文件中存在的小部件导出到根小部件中,请查看 PySide ML 线程以获取更多信息[1];

  • pyside-uic 在 MacOS 平台上生成没有父项的菜单栏;

  • 信号连接优化;

错误修复

  • 892 在销毁 QWidget 且 QApplication 安装了事件过滤器时发生段错误

  • 407 多重继承 QObject 和原生 Python 类时崩溃

  • 939 Shiboken::importModule 必须验证 PyImport_ImportModule 是否成功

  • 937 QProcess 中缺少 pid 方法

  • 927 QThread 代码上的段错误。

  • 925 将 QScriptValue 传递为 QObject 或在 QScriptValue 上使用 .toVariant() 时发生段错误

  • 905 QtGui.QHBoxLayout.setMargin 函数调用是由 pyside-uic 创建的,但在 pyside 绑定中不可用。

  • 904 当将 Qt.WA_DeleteOnClose 设置为 True 时,重复打开 QDialog 将导致 PySide 崩溃。

  • 899 在 'QVariantList' 属性处发生段错误。

  • 893 在父控件中存在 Shiboken 引用泄露。

  • 878 如果添加了新类,Shiboken 可能会生成不兼容的模块。

  • 938 QTemporaryFile JPEG 问题。

  • 934 QByteArray 的 __getitem__ 方法表现异常。

  • 929 pkg-config 文件不知道 Python 版本标签。

  • 926 qmlRegisterType 与 QObject 不兼容。

  • 924 允许通过 [] 访问 QScriptValue。

  • 921 对象销毁时未自动断开信号。

  • 920 不能为两个信号使用相同的槽。

  • 919 QStyle 方法上的默认参数不工作。

  • 915 QDeclarativeView.scene().addItem(x) 使 x 对象无效。

  • 913 QTabWidget 中的小部件未作为包含小部件的成员导出。

  • 910 installEventFilter() 在目标对象上增加引用计数。

  • 907 pyside-uic 在 OS X 下将 MainWindow.setMenuBar(self.menubar) 添加到生成的代码中。

  • 903 ItemDelegate 中的 eventFilter。

  • 897 QObject.property() 和 QObject.setProperty() 方法对用户定义的属性失败。

  • 896 QObject.staticMetaObject() 缺失。

  • 916 文档中缺少有关何时可以使用关键字参数的信息 [原:QListWidgetItem 构造函数忽略文本参数]

  • 890 在文档中添加 QSpinBox valueChanged(int) 信号连接示例。

  • QPixmapCache 的映射接口。

  • 909 删除 QMainWindow/QApplication 导致段错误。

项目详情


下载文件

下载您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分布

PySide-1.2.4.tar.gz (9.3 MB 查看哈希值)

上传时间

构建分布

PySide-1.2.4-cp34-none-win32.whl (41.0 MB 查看哈希值)

上传时间 CPython 3.4 Windows x86

PySide-1.2.4-cp33-none-win32.whl (41.1 MB 查看哈希值)

上传时间 CPython 3.3 Windows x86

PySide-1.2.4-cp27-none-win_amd64.whl (45.0 MB 查看哈希值)

上传于 CPython 2.7 Windows x86-64

PySide-1.2.4-cp27-none-win32.whl (41.0 MB 查看哈希值)

上传于 CPython 2.7 Windows x86

PySide-1.2.4-cp26-none-win_amd64.whl (45.1 MB 查看哈希值)

上传于 CPython 2.6 Windows x86-64

PySide-1.2.4-cp26-none-win32.whl (41.0 MB 查看哈希值)

上传于 CPython 2.6 Windows x86

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面