Monday of Code
100 days of codeって言うチャレンジあるじゃないですか。僕もRailsとか言うGem入れるだけでなんかサービスっぽいものが動かせるやつ触っているし、アレやってみようと思うんですよね。Twitterとかやってないけど……。
そんなわけでPyQtやることにします
Railsは……?んで、件のPyQtはPythonで扱えるQtです。
PyQtは、クロスプラットフォームなGUIツールキットであるQtのPythonバインディングにして、PythonでGUIプログラミングをするときの選択肢の一つである。PyQtの他には、PySide・PyGTK・wxPython・TkinterなどのGUIツールキットが存在する。Qtと同様にPyQtはフリーソフトウェアである。PyQtはPythonのプラグインとして実装されている。
デスクトップアプリとかが作れるやつです。
公式
Riverbank | Software | PyQt | What is PyQt?
そんで、今日はこんなの作りました。
くだらない……。
以下クソコード
import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * class App(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): # メインウィンドウ self.setGeometry(300, 300, 200, 150) self.setMinimumHeight(100) self.setMinimumWidth(250) self.setMaximumHeight(100) self.setMaximumWidth(250) self.center() # ラベル Mytext = "<h1>人生は一度きり</h1>" self.text = QLabel(Mytext ,self) self.text.setAlignment(Qt.AlignCenter) self.text.move(45, 15) # ボタン self.btn = QPushButton('もう一回', self) self.btn.move(80,70) self.btn.clicked.connect(self.buttonClicked) self.setWindowTitle('ワンチャンス') self.show() # デスクトップ真ん中に表示 def center(self): qr = self.frameGeometry() cp = QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) self.move(qr.topLeft()) # ボタンクリックでラベル変更 def buttonClicked(self): Mytext = "<h1>二度目はないぞ</h1>" self.text.setText(Mytext) # 何か思いついたら実装する def parupunte(): pass if __name__ == '__main__': app = QApplication(sys.argv) ex = App() sys.exit(app.exec_())
ロジックとかはPythonなんで別になんとかなりそうなんですけど、UI周りで何ができるのかまだよくわからないからいまいちパッとしない機能のものしか作れない。あと別に必要な機能とか思いつかない。
しかし資料になりそうなものが見つからん。PyQtに関してなんか良い感じの体系的にまとまっているドキュメントないですかね?なるべく日本語か英語の資料がいいですんがね……。
その他参考
PyQT5 – Python Tutorial
まあいいや。そんなわけで今日も月曜なので頑張っていきましょう。