mac install PyQt5
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,所见即所得
- 打开 PyCharm 的设置
- 找到 Tools -> External Tools
- 点击 + -> 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的更多相关文章
- Mac Python PyQt5 环境搭建
pip install pyqt5 测试开发环境 在Terminal里敲下以下代码,如果没有报错就说明安装成功了. python -c "import PyQt5" 或是如下图,导 ...
- mac 安装PyQt5
PyQt5官方安装教程指出2种安装方法: Installing from Wheels Building and Installing from Source 网上搜罗的大多是按照第二种方法安装的,本 ...
- react native mac install
Mac上使用react native tips: 1. 安装Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/ ...
- mac install wget
没有Wget的日子是非常难过的,强大的Mac OS 下安装Wget非常简单 下载一个Wget的源码包,http://www.gnu.org/software/wget/ ftp下载地址:ftp://f ...
- mac install: /usr/bin/unrar: Operation not permitted
按照教程mac下解压缩rar文件工具-rarosx(免费),在mac上安装rar,在执行命令 sudo install -c -o $USER unrar /bin 出现错误:install: /bi ...
- mac install php dev
环境开发配置 mysql 下载mysql压缩包.tar.gz 解压 mv mysql_5.7.10_osx... /usr/local/mysql sudo chown -R root:wheel / ...
- mac install brew
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ...
- java mac install
http://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html#A1096855 This page descri ...
- mac install telnet
问题: -bash: telnet: command not found -bash: brew: command not found 解决: /usr/bin/ruby -e "$(cur ...
随机推荐
- URAL —— 1255 & HDU 5100——Chessboard ——————【数学规律】
用 k × 1 的矩形覆盖 n × n 的正方形棋盘 用 k × 1 的小矩形覆盖一个 n × n 的正方形棋盘,往往不能实现完全覆盖(比如,有时候 n × n 甚至根本就不是 k 的整倍数). 解题 ...
- Advanced .NET Debugging: Managed Heap and Garbage Collection(转载,托管堆查内存碎片问题解决思路)
原文地址:http://www.informit.com/articles/article.aspx?p=1409801&seqNum=4 Debugging Managed Heap Fra ...
- python之高阶函数map/reduce
L = [] for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]: L.append(f(n)) print(L) Python内建了map()和reduce()函数. 我们先看 ...
- java常用API之Calendar类
Calendar是日历类,该类将所有可能用到的时间信息封装为静态成员变量,方便获取. Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言 ...
- Python中and和or的运算法则
1. 在纯and语句中,如果每一个表达式都不是假的话,那么返回最后一个,因为需要一直匹配直到最后一个.如果有一个是假,那么返回假2. 在纯or语句中,只要有一个表达式不是假的话,那么就返回这个表达式的 ...
- MySQL 修改数据表中的字段的字符编码
1.查询 MySQL 的版本: SELECT VERSION(); 2.查询 MySQL 当前使用的字符集: SHOW VARIABLES LIKE '%character%'; 3.查询指定数据库的 ...
- 【Android】2.0 Android开发环境的搭建——Eclipse
1.0 eclipse,这可不算谷歌开发的,是IBM公司开发的,而且是Java语言写的 2.0 eclipse怎么下.百度“eclipse”,进入eclipse官网 然后,瞎几把下吧……,实在不行百度 ...
- String StringBuffer StringBuilder对比
1.相同点 三者都可以用来存储字符串类型数据. 2.不同点 String类型对象内容不可变,每变化一次都会创建一个新的对象. StringBuiler与StringBuffer的内容与长度均可以发生变 ...
- Eclipse equinox implementation of OSGi
Bundle package org.osgi.framework; public interface Bundle extends Comparable<Bundle> { int UN ...
- EPS 转 pdf 在线
EPS 转 pdf 在线网站 https://convertio.co/zh/eps-pdf/