Study PyQt from beginning 之 4-Windows 环境下的C语言封装
来源:互联网 发布:飘零网络验证系统 编辑:程序博客网 时间:2024/06/13 06:31
杂七杂八,记录一下算是备忘,另,发现有网络爬虫再复制这些帖子,还是留个名字吧。----by Hyman
环境准备,没有vs编译器,于是需要安装mingw,也很简单,下载mingw-get-setup.exe,选择base安装,编译器只需要gcc即可,系统默认会安装msys。安装完毕后把x:\mingw\bin和x:mingw\msys\bin两个目录都放进系统环境变量path里面
Upd: 实际上,只选择gcc,就是在 "MinGW Installtion Manager"里面的Basic Setup里面,只选择mingw-base和mingw-gcc-g++两项即可。msys不用安装,那个msys里面自带了一个不同版本的make,比mingw32-make版本低一点,为了避免麻烦,不装msys了。
如果非要使用习惯的unix之类的命令行,有个install-alias.bat,就是把指定的一个目录放进注册表里面,相当于直接加到系统的path里面,然后在这个目录里写xx.bat,典型的cp.bat内容为
@echo off
copy %*
依法泡制即可。
1、典型的qt的pro文件,用于qmake生成makefile,格式和unix不太一样。
SOURCES = btc.c
CONFIG += qt warn_on release
INCLUDEPATH += "D:\\Python33\\include"
LIBS += -LD:\\Python33\\libs -LD:\\Python33\\LIB -lpython33
主要是 INCLUDEPATH 对于windows路径,需要用引号引上,而且,双斜杠,貌似可以用单反斜线/。 LIBS 的路径不用加引号,-lpython33,要确认在上述lib目录里应该有libpython33.a文件才行。
qmake 用的pro文件,博大精深。最简单的用法,对于命令行调试c语言来说,需要有很多的printf输出,就需要在 CONFIG一行再加上 console字样, 变成
CONFIG += qt warn_on release console
这样,习惯printf("%s %d\n",__FILE__,__LINE__);的c语言老油子们,又可以跟unix调试的方法一样了。
2、用qmake生成Makefile
x:\...\qmake -spec win32-g++ xxx.pro 这里 -spec参数是指定编译器,参数可以在qt\4.8.5\mkspecs目录里面找到,每个目录名都是不同的编译器选项,涉及到win32的有
2014/02/07 05:56 <DIR> win32-borland
2014/02/07 05:56 <DIR> win32-g++
2014/02/07 05:56 <DIR> win32-g++-4.6
2014/02/07 05:56 <DIR> win32-icc
2014/02/07 05:56 <DIR> win32-msvc2003
2014/02/07 05:56 <DIR> win32-msvc2005
2014/02/07 05:56 <DIR> win32-msvc2008
2014/02/07 05:56 <DIR> win32-msvc2010
2014/02/07 05:56 <DIR> win32-msvc2012
3、c语言封装调用python3,和调用python2略有不同,可以在官方网站找到文档稍加修改即可。如果直接用python2的版本,是无法编译通过的。
编译使用mingw32-make -f Makefile
4、eric5编译出来的pyqt4的ui文件,直接运行会出错,主要是这几句
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
。。。。
每个Ui_xxx.py文件的前面都是这么几句。但是python3的文档说了,String简化了,据说python3的目的就是要简化python2,于是QString 会报不存在的属性。
处理办法有2个:
- 一是用sip,原理是指定QString是属于python2的api,在前面加上
import sipsip.setapi('QString', 1)
即可,系统运行时,把QString作为python2的api,也可以运行。- 二方法是最简单,上述几句删掉3句,直接使用
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
就行了。
- Study PyQt from beginning 之 4-Windows 环境下的C语言封装
- Study PyQt from beginning 之 3----Windows环境
- Study PyQt from beginning
- Study PyQt from beginning 之 2
- Windows+EclipseCDT下的C语言开发环境准备
- windows下c语言环境搭建
- windows下C语言开发环境搭建
- Windows环境下的C程序设计环境
- Windows环境下的C程序设计环境
- C语言之深度剖析Study
- 配置Matlab和C语言的混合编程环境(Windows环境下)
- Windows下Go语言的环境搭建
- C语言封装的轻量线程环境 Protothreads
- windows环境下parser generator和vc++的各项配置 c语言的词法分析Lex
- x64 Windows下配置C语言开发MySQL的环境遇到的问题
- windows环境下编译运行C语言程序(…
- Windows下C语言环境搭建VIM+GCC+CTAGS
- Windows环境下用记事本编写C语言
- [leet code] Construct Binary Tree from Preorder and Inorder Traversal
- Dropzone 添加现存图片代码
- 最详细在Windows安装Xamarin.iOS教程
- iOS 7学习:多任务处理之Background Fetch
- 2014年时间计划表(从2.8开始)
- Study PyQt from beginning 之 4-Windows 环境下的C语言封装
- 求一个数组的子数组的最大和
- 从面试官的角度给面试实习的同学一些刷题以外的建议
- 实习结果
- spoj NQUEEN N皇后 DLX
- Binary Tree Traversal 3 种
- Java链接MySQL数据库 操作
- python中的try/except/else/finally语句
- IBM敏捷转型纲领 - 纪律