笔者最近在做Qt方面的开发工作,然后需要用到脚本程序对程序内部进行扩展,就很自然的想到了Python,度娘一下发现了一款神器,也就是今天给大家介绍的主角:PythonQt

今天首先给大家介绍下PythonQt在Windows下的的安装编译,后续将做一个系列陆续介绍PythonQt在项目中使用时遇到的坑以及解决方法。

1.介绍

PythonQt是发布在Sourceforge上的一款开源的连接Qt与Python的框架,主页地址http://pythonqt.sourceforge.net/,目前更新到版本3.0;具体介绍可以访问主页进行了解;

2.下载与安装

访问链接:https://sourceforge.net/projects/pythonqt/files/pythonqt/可以下载该框架的所有版本,笔者使用了最新版本3.0,下面开始编译:

解压后可以看到一个build目录,里面存放有配置文件,在正式编译前需要对配置文件进行修改

 # profile to include and link Python

 # Change this variable to your python version (2.6, 2.7, 3.3, ...)
win32::PYTHON_VERSION= # When using the prebuild Python installer, this will be:
PYTHON_PATH = c:\Python27
PYTHON_LIB = c:\Python27\libs # check if debug or release
CONFIG(debug, debug|release) {
DEBUG_EXT = _d
} else {
DEBUG_EXT =
} win32::INCLUDEPATH += $$PYTHON_PATH/PC $$PYTHON_PATH/include
win32::LIBS += $$PYTHON_LIB/python$${PYTHON_VERSION}$${DEBUG_EXT}.lib

将以上代码拷贝到原始Python.prf下,将win32::PYTHON_VERSION修改为你安装的Python版本,PYTHON_PATH、PYTHON_LIB修改为你自己的python目录即可。

然后执行createSolution.bat生成vs项目文件,即可使用vs对项目进行编译即可,(只需要编译项目PythonQt,PythonQt_QtAll即可,其他为例子和测试用例)

由于笔者没有安装python的debug版本,所以在编译pythonQt时,Debug版本是编译不过的,需要调试的同学需要首先安装python的Debug版本后才能编译pythonQt的debug版本。

-------------------------------------追加

注意:作为把自己给坑了的人,在这里必须给大家提醒下,在实际使用时,relase和debug之间不能混用,混用后会造成python不能正确使用的情况,所以你的应用程序在调试过程必须使用pythonqt的debug版本,笔者编译了python2.7.11,qt5.5.1版本下的pythonqt,由于附件比较大,需要的请留邮箱。

-------------------------------------追加结束

然后需要说明的是,在官方文档中,Python对支撑库版本要求说明:

  • Qt 4.x (Qt 4.7 and Qt 4.8 recommended)
  • Qt 5.x (Tested with Qt 5.0, 5.3 and 5.4)

PythonQt对python的支持版本

  • Python 2 (>= Python 2.6)
  • Python 3 (>= Python 3.3)

推荐 qt4.7,4.8 在5.0,5.3,5.4中跑过测试用例,在其他版本中实测是可以使用的,如果你对系统稳定性要求很高还是按官方文档的建议吧。

已编译好的安装包: http://download.csdn.net/detail/z182068171/9496116

原文地址:http://www.cnblogs.com/zhangzhiming/p/5407644.html

技术分享QQ群:527698177 (限四川地区)

PythonQt在windows下的编译的更多相关文章

  1. 原创 C++应用程序在Windows下的编译、链接:第一部分 概述

    本文是对C++应用程序在Windows下的编译.链接的深入理解和分析,文章的目录如下: 我们先看第一章概述部分. 1概述 1.1编译工具简介 cl.exe是windows平台下的编译器,link.ex ...

  2. 【FFmpeg】Windows下FFmpeg编译

    由于FFmpeg是基于Linux开发的开源项目,源代码和Windows下最常见的Visual Studio提供的C/C++编译器不兼容,因此它不能使用MSVC++编译,需要在Windows下配置一个类 ...

  3. C++应用程序在Windows下的编译、链接(一)概述

    C++应用程序在Windows下的编译.链接(一)概述 本文是对C++应用程序在Windows下的编译.链接的深入理解和分析,文章的目录如下: 我们先看第一章概述部分. 1概述 1.1编译工具简介 c ...

  4. ACE在windows下的编译及配置(VS2010)

    ACE在windows下的编译及配置(VS2010) 分类:             -[小西南]-              2013-08-06 16:17     2354人阅读     评论( ...

  5. [转]QGis2.9在windows下的编译以及二次开发包下载

    今天心血来潮,将QGis在github上的代码更新后,又编译了一下.留意到源代码包里面的INSTALL文件有更新,于是本次编译完全基于官方的编译说明.编译过程非常顺利,除了在CMake的第一次conf ...

  6. windows下rabbitmq-c编译(带openssl、无需MinGW)

    因为项目原因,需要使用到rabbitmq的c客户端库.首先,参见上一篇windows下openssl编译,如果已经使用cmake编译过了,则先delete cache(File-Delete Cach ...

  7. 设置 Quick-Cocos2d-x 在 Windows 下的编译环境

    http://cn.cocos2d-x.org/tutorial/show?id=1304 设置 Quick-Cocos2d-x 在 Windows 下的编译环境 Liao Yulei2014-08- ...

  8. JAVA 基础开发环境 vscode 搭建 Windows下VSCode编译运行简单java

    JAVA 基础开发环境 vscode 搭建 来源 https://www.cnblogs.com/freewsf/p/7744728.html 对于使用 Visual Studio Code 的 Ja ...

  9. Windows下CMake编译安装OpenCV

    Windows下CMake编译安装OpenCV 这是一个面向新手的在windows上运进opencv, helloword的教程. 在这里我们使用vs2019来编译opencv, 并运行一个hello ...

随机推荐

  1. Linux常用命令的命名来源

    很多人在学习Linux的时候会疑惑:这么多的Linux名,他们都是怎么被定义的?林纳斯是怎么制定如此花样繁多且数量庞大的命令?今天这篇文章可能会帮你解开疑惑. ## 1. 目录缩写 缩写 | 全称 | ...

  2. 求m-n之间数字的和

    unction sum(m,n){         var sum = 0;         if(m>n){                 for(var i=n; i<=m; i++ ...

  3. JavaScript字符串练习

    题目: 预备代码: // 自定义输出 var log = function () { console.log.apply(this, arguments); }; // ====== // 测试 // ...

  4. msq_table's methods2

    -- 删除数据 自增长id被占用 -- 清楚所有数据并重置id 1 truncate table name; -- 主键(唯一) id int primary key; -- 主键内容不能重复,不能为 ...

  5. [Flutter] Android沉侵式标题栏顶部叠加层去除

    可能你的app是这样: 框起来部分和标题栏颜色并不一致. 调用下面的代码可以变成一样. import 'package:flutter/services.dart'; static SystemUiO ...

  6. canvas学习笔记、小函数整理

    http://bbs.csdn.net/topics/391493648 canvas实例分享 2016-3-16 http://bbs.csdn.net/topics/390582151 html5 ...

  7. sql server自增列值的获取

    IDENT_CURRENT(tbname) 是看表对象.所以没有受作用域限制. SCOPE_IDENTITY()  受作用域限制.同一个会话里面不同作用域也会有差异 @@IDENTITY  受会话限制 ...

  8. jpa-入门级测试

  9. The type org.springframework.dao.support.DaoSupport cannot be resolved. It is indirectly referenced

    springmvc mybatis整合,遇到错误:The type org.springframework.dao.support.DaoSupport cannot be resolved. It ...

  10. 使用示例带你提前了解 Java 9 中的新特性

    使用示例带你提前了解 Java 9 中的新特性 转载来源:https://juejin.im/post/58c5e402128fe100603cc194 英文出处:https://www.journa ...