Pythonでdmgの作り方が気になったので、
試してみることにする。
・使用環境
PC:macbookPro M1
OS:macOS Monterey v12.3.1
・開発環境
Python 3.9.12
デスクトップに「mac_app」のフォルダを作成。
端末を開いて、作業する。
①dmgbuildをインストール
pip install dmgbuild
②dmgbuildのソースにそのまま使えるサンプルをダウンロード
wget https://raw.githubusercontent.com/al45tair/dmgbuild/master/examples/settings.py
③Python QTアプリ作成
brew install pyqt5
pip install pyinstaller
「pyqt5_test.py」
以下のコードを作成
————————
import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == "__main__":
app = QApplication(sys.argv)
w = QWidget()
w.resize(300,100)
w.setWindowTitle("テスト")
w.show()
sys.exit(app.exec_())
————————
python pyqt5_test.py
無事実行できた。
「pyqt5_test2.py」
—————————
import sys
from PyQt5.QtWidgets import (QWidget, QToolTip, QPushButton, QApplication)
from PyQt5.QtGui import QFont
from PyQt5.QtCore import QCoreApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
QToolTip.setFont(QFont('SansSerif', 10)) #font-familyとfontsizeの指定
self.setToolTip('This is a <b>QWidget</b> widget')#マウスオンでツールチップを入れる。
btn = QPushButton('Button', self) #ボタンの生成
btn.setToolTip('This is a <b>QPushButton</b> widget') # マウスオンでツールチップを入れる。
btn.clicked.connect(QCoreApplication.instance().quit) # ボタンを押すと画面が閉じる
btn.resize(btn.sizeHint()) # いい感じのボタンサイズとボタンのエフェクトを指定してくれる。
btn.move(50, 50)#ボタンのポジションの設定
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Tooltips')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
—————————–
python pyqt5_test_2.py
こちらも無事実行できた。
スタンドアロンのアプリを生成する
pyinstaller –onefile –windowed pyqt5_test.py
pyinstaller –onefile –windowed pyqt5_test2.py
./distに
pyqt5_test
pyqt5_test2
のappができている。
④実行
dmgbuild -s settings.py -D app=./dist/pyqt5_test.app “My Application”
pyqt_test.dmg
dmgbuild -s settings.py -D app=./dist/pyqt5_test2.app “My Application”
pyqt_test2.dmg
実行できた、手軽で面白い。記事を書いてくれた人に感謝。
⑤アイコン画像を変えたい
③の段階でアイコンを変えてみる。
こちらを参考にした。
dmgbuild -s settings.py -D app=./dist/pyqt5_test.app “My Application”
pyqt_test.dmg
この手軽さは感動した。
あれ、③でapp作成でれきれば、
簡単に作れるのかな?
dmg生成は難しいイメージだったけど、
意外と簡単にできたので、面白い。
・参考
【Python入門】PyQt5でGUIを作ろう!導入から使い方まで解説
https://www.sejuku.net/blog/75467
[Mac]自作アプリの配布用ディスクイメージの作り方
https://qiita.com/knoguchi/items/2e71d835ee4c238c9611
PyQt5のインストール【PythonでGUIアプリ作成】
https://self-development.info/
pyqt5%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3
%83%BC%E3%83%AB%E3%80%90python%E3%81%A7gui%E3%82%A2%E3
%83%97%E3%83%AA%E4%BD%9C%E6%88%90%E3%80%91/