1. install brew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. install python3

brew install python3 
brew info python3
python3 -V

3. install sip & pyqt5

pip3 install sip
pip3 install pyqt5

simple.py

import sys
from PyQt5.QtWidgets import QMainWindow, QTextEdit, QApplication, qApp, QAction
from PyQt5.QtGui import QIcon class simple(QMainWindow): def __init__(self):
super().__init__()
self.initUI() def initUI(self):
self.setWindowTitle('hello')
self.setObjectName("helloWin")
self.resize(500, 300) if __name__ == '__main__':
app = QApplication(sys.argv)
ex = simple()
ex.show()
sys.exit(app.exec_())

simple2.py

# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import * class FirstWindow(QWidget): signal = pyqtSignal(str)
def __init__(self, parent=None):
# super这个用法是调用父类的构造函数
# parent=None表示默认没有父Widget,如果指定父亲Widget,则调用之
super(FirstWindow, self).__init__(parent)
self.resize(100, 100)
self.btn = QToolButton(self)
self.btn.setText("click")
self.signal.connect(self.sinCall) def sinCall(self, text):
print("sin emit:", text)
self.btn.setText(text) def closeEvent(self, event):
result = QMessageBox.question(self,
"Confirm Exit...",
"Are you sure you want to exit ?",
QMessageBox.Yes| QMessageBox.No)
event.ignore() if result == QMessageBox.Yes:
event.accept() class SecondWindow(QWidget):
def __init__(self, parent=None):
super(SecondWindow, self).__init__(parent)
self.resize(200, 200)
self.setStyleSheet("background: black") def handle_click(self):
if not self.isVisible():
self.show() def handle_close(self):
self.close() if __name__ == "__main__":
App = QApplication(sys.argv)
ex = FirstWindow()
s = SecondWindow()
ex.btn.clicked.connect(s.handle_click)
#ex.btn.clicked.connect(ex.hide)
ex.signal.emit("signal text")
ex.show()
sys.exit(App.exec_())

4. install Qt (可选, 方便做界面,类似winform做界面用: 界面可视化工具,可以很方便的设计UI,所见即所得)
  a. install xcode
  b. download Qt https://www.qt.io/download/ 

5. install pycharm(可选, IDE, 方便开发: 可集成Qt; Qt的ui文件转py; 直接运行python)
  a. 配置Qt Designer:   Qt的界面可视化工具,可以很方便的设计UI,所见即所得

  1. 打开 PyCharm 的设置
  2. 找到 Tools -> External Tools
  3. 点击 + -> Create Tool


      b. 配置PyUIC:   这个工具可以把Qt Designer的UI文件,转换成Py文件

    python3 -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py

    c. 右键菜单中选择 External Tools 即可         
    d. 配置 pyrcc (安装完python3以后就有了)

    pyrcc5 resources.qrc -o resources.py

    使用

    resource.qrc
    <!DOCTYPE RCC>
    <RCC version="1.0">
    <qresource prefix="/img">
    <file alias="a.png">./img/a.png</file>
    <file alias="b.png">./img/b.png</file>
    </qresource>
    </RCC> pyrcc5 img_rcc.qrc -o img.py # 导入这个文件,会自动调用资源初始化函数
    from img.py import *
    # 使用资源的时候 访问的文件名 即 qrc里的 :prefix+alias ,例如
    img = QPixmap(":/img/a.png")

6.install pyinstaller (可选, python转可执行文件:exe, pkg))

pip3 install pyinstaller
pyinstaller -F -w {PyFile}.py

mac install PyQt5的更多相关文章

  1. Mac Python PyQt5 环境搭建

    pip install pyqt5 测试开发环境 在Terminal里敲下以下代码,如果没有报错就说明安装成功了. python -c "import PyQt5" 或是如下图,导 ...

  2. mac 安装PyQt5

    PyQt5官方安装教程指出2种安装方法: Installing from Wheels Building and Installing from Source 网上搜罗的大多是按照第二种方法安装的,本 ...

  3. react native mac install

    Mac上使用react native tips: 1. 安装Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/ ...

  4. mac install wget

    没有Wget的日子是非常难过的,强大的Mac OS 下安装Wget非常简单 下载一个Wget的源码包,http://www.gnu.org/software/wget/ ftp下载地址:ftp://f ...

  5. mac install: /usr/bin/unrar: Operation not permitted

    按照教程mac下解压缩rar文件工具-rarosx(免费),在mac上安装rar,在执行命令 sudo install -c -o $USER unrar /bin 出现错误:install: /bi ...

  6. mac install php dev

    环境开发配置 mysql 下载mysql压缩包.tar.gz 解压 mv mysql_5.7.10_osx... /usr/local/mysql sudo chown -R root:wheel / ...

  7. mac install brew

    $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ...

  8. java mac install

    http://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html#A1096855 This page descri ...

  9. mac install telnet

    问题: -bash: telnet: command not found -bash: brew: command not found 解决: /usr/bin/ruby -e "$(cur ...

随机推荐

  1. HDU 5318——The Goddess Of The Moon——————【矩阵快速幂】

    The Goddess Of The Moon Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/ ...

  2. gitbook一仓库多本书持续化部署

    引言 本文档用户指导新手如何部署GitLab+Jenkins自动化构建GitBook,并使用Nginx发布资料.在部署过程中,如遇到任何问题,请自行百度. 注意: 此文章的环境和数据,仅为用于调试的片 ...

  3. [转]ASP.NET Web API系列教程(目录)

    本文转自:http://www.cnblogs.com/r01cn/archive/2012/11/11/2765432.html 注:微软随ASP.NET MVC 4一起还发布了一个框架,叫做ASP ...

  4. Nginx下载安装

    系统环境:win7 nginx:1.11.4 1.下载Nginx 下载地址:http://nginx.org/en/download.html 2.将压缩包解压到相应位置 3.启动nginx服务,ng ...

  5. 1、v1 与 v2的比较

    1.路由的迁移 /* --- v1 ----*/ .config(function($stateProvider){ $stateProvider .state('main', { url: '/', ...

  6. 关于IQueryable和IEnumerable

    园里对这两个已经有很多文章作了深入的介绍,我总结些,当成笔记用. 一.具体判断用哪个上,如果是运行在本地内存中的,用IEnumerable,枚举该对象时,会立即反应查询结果. 如果是远程数据源,比如数 ...

  7. 自己用jquery+css+div写的一个弹窗

    弹窗支持两种模式,一种是普通信息提示框,调用方法:popup.msgPopup(msg); 另一种是可以加载页面的弹窗,调用方法:popup.pagePopup(url); 效果图: css代码 ;; ...

  8. 写一个安全的Java单例

    单例模式可能是我们平常工作中最常用的一种设计模式了.单例模式解决的问题也很常见,即如何创建一个唯一的对象.但想安全的创建它其实并不容易,还需要一些思考和对JVM的了解. 1.首先,课本上告诉我,单例这 ...

  9. jQuery:mouseover and Increase the Size of an Image

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 洛谷P4632 [APIO2018] New Home 新家(动态开节点线段树 二分答案 扫描线 set)

    题意 题目链接 Sol 这题没有想象中的那么难,但也绝对不简单. 首先把所有的询问离线,按照出现的顺序.维护时间轴来处理每个询问 对于每个询问\((x_i, y_i)\),可以二分答案\(mid\). ...