about 2 results (0.01 seconds)

Python3+PyQt5+PyCharm开发环境配置

by LauCyun Jul 18,2017 18:07:56 70,604 views

我的开发环境:

  • Windows 10
  • JetBrains PyCharm 2017.1
  • Python 3.5.3
  • PyQt5 5.6
  • pyinstaller:将python代码打包为可执行的exe文件。

需要安装哪些东西呢?

  • sip
  • PyQt5
  • python

1 sip

什么是sip?

sip是RiverBank(也就是PyQt的开发商)开发的用于PyQt的Python/C++混合编程解决方案。由于Qt框架的复杂性,PyQt并没有使用Cython、SWIG的混合编程方案,而是自己单独做了一套框架。sip包括一个sip工具、SDK和Python Module。

与SWIG类似,使用sip也需要先编写一个『配置文件』,然后使用sip工具『编译』为C++源文件,最后,和Qt库一起编译形成适用于Python的PyQt。

与SWIG不同的是,sip同时以Python Module的形式存在,也就是说,作为Python Module的PyQt,依赖于作为Python Module的sip。而对于SWIG,一旦自动生成的C++生成完毕,整个流程就不再依赖SWIG了。

需要注意:

如果你安装了PyQt4和PyQt5,那么PyQt4和PyQt5无法共享sip。

就像 Python2 和 Python3 严格说不能共享pip 一样,因为有差异,解决方案就是给每个目录配置独立的Python环境(virtualenv)。

安装sip

方式1:pip安装

使用支持的Python版本,你可以从PyPi安装SIP通过运行:

pip3 install SIP

方式2:手动编译安装

下载地址:https://sourceforge.net/projects/pyqt/files/sip/sip-4.19.1/sip-4.19.1.tar.gz(用于64位Linux,OS X和32位和64位Windows的Python v3.5及更高版本)。

编译安装步骤:

tar xvf sip-4.19.1.tar.gz
cd sip-4.19.1
python3 configure.py -d /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages
make
sudo make install

手动编译参考:http://www.cnblogs.com/tkinter/p/5632231.html

 

2 PyQt5

我的操作系统是64位的,安装的是Python3.5.3,所以我选择下载:PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x64-2.exe,单击安装即可。

到这里需要安装的都安装完成了,下面需要把所以安装的东西配置起来。

 

3 配置PyCharm

在PyCharm中打开设置界面,输入Tools,点开External Tools。

1) 配置QtDesigner

点击左上角的加号,名称为QtDesigner,其Tool seetings内容如下:

  • Program选择designer.exe的路径:D:\Python\Python35\Lib\site-packages\PyQt5\designer.exe
  • Work directory使用变量$FileDir$

2) 配置PyUIC

用于把QtDesigner创建的UI文件转换成py文件。

点击左上角的加号,名称为PyUIC,其Tool seetings内容如下:

  • Program选择Python的路径:D:\Python\Python35\python3.exe
  • Parameters填入-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
  • Work directory使用变量$FileDir$

 

4 实战Hello PyQt5

用PyCharm创建一个项目名为hellopyqt5,打开QtDesigner程序写UI,写完再用PyUIC把UI文件转成py文件,如下图:

如果想启动看到hellopyqt5.ui的界面,我们需要写如下代码调用它:

import sys
import hellopyqt5
from PyQt5.QtWidgets import QApplication, QMainWindow

if __name__ == '__main__':
    app = QApplication(sys.argv)
    MainWindow = QMainWindow()
    ui = hellopyqt5.Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

好了调用代码写好了,开始运行吧!运行结果:

看到了我们写的界面!到这为此,PyQt5的开发环境配置完成了!小伙子们,开始搞事情吧!

(全文完)

...

Tags Read More..


Pycharm自定义文件和代码模板

by LauCyun Nov 21,2016 21:02:11 22,066 views

PyCharm提供了文件和代码模板功能,可以利用此模板来快捷新建代码或文件。IDE默认的是空白文件,但是我们希望增加个性化的内容,比如在PyCharm中新建一个py文件,会自动填充如下内容:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
 Name        : laucyun.py
 Created on  : 2016/11/21 21:00
 Author      : LauCyun<liu@liuker.xyz>
 Version     : 1.0.0
 Copyright   : Copyright (C) 2016 - 2017, LauCyun, https://laucyun.com.
 Description : .
"""

首先进入File -> Setting -> Editor -> File and Code Templates(如图1所示),添加以下内容:

图1 Python's File and Code Templates

Python:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
    ${NAME}
    ~~~~ on ${MONTH_NAME_FULL} ${DAY},${YEAR} ${HOUR}:${MINUTE}
    
    The description is written here.
    
    :license MIT, see LICENSE for more details.
#if ($YEAR == "2013")
    :copyright (c) 2013 by laucyun<liu@liuker.xyz>.
#else
    :copyright (c) 2013 - $YEAR by LauCyun<liu@liuker.xyz>.
#end
"""

C/C++:

/*
* ${FILE_NAME}
* ~~~~ on ${MONTH_NAME_FULL} ${DAY},${YEAR} ${HOUR}:${MINUTE}
*
* The description is written here.
*
* :license MIT, see LICENSE for more details.
#if ($YEAR == "2013")
* :copyright (C) 2013 by LauCyun<liu@liuker.xyz>.
#else
* :copyright (C) 2013 - $YEAR by LauCyun<liu@liuker.xyz>.
#end
*/

Lua:

--
-- ${FILE_NAME}
-- ~~~~ on ${MONTH_NAME_FULL} ${DAY},${YEAR} ${HOUR}:${MINUTE}
-- 
-- The description is written here.
--
#if ($YEAR == "2013")
-- Copyright: Copyright (C) 2013 by LauCyun<liu@liuker.xyz>.
#else
-- Copyright: Copyright (C) 2013 - $YEAR by LauCyun<liu@liuker.xyz>.
#end
--

JavaScript:

/**
 * ${FILE_NAME}
 * ~~~~ on ${MONTH_NAME_FULL} ${DAY},${YEAR} ${HOUR}:${MINUTE}
 * 
 * The description is written here.
 * 
#if ($YEAR == "2013")
 * Copyright   : Copyright (C) 2013 by LauCyun<liu@liuker.xyz>.
#else
 * Copyright   : Copyright (C) 2013 - $YEAR by LauCyun<liu@liuker.xyz>.
#end
 */

 

具体的参数设置,请参考官方文档File and Code Templates

...

Tags Read More..