1. install brew
python
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. install python3git
brew install python3
brew info python3
python3 -V
3. install sip & pyqt5github
pip3 install sip pip3 install pyqt5
simple.pyxcode
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.pyruby
# -*- 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/ app
5. install pycharm(可選, IDE, 方便開發: 可集成Qt; Qt的ui文件轉py; 直接運行python)
a. 配置Qt Designer: Qt的界面可視化工具,能夠很方便的設計UI,所見即所得 curl
b. 配置PyUIC: 這個工具能夠把Qt Designer的UI文件,轉換成Py文件
ide
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