コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

本日の進捗 月曜コードチャレンジ

Monday of Code

100 days of codeって言うチャレンジあるじゃないですか。僕もRailsとか言うGem入れるだけでなんかサービスっぽいものが動かせるやつ触っているし、アレやってみようと思うんですよね。Twitterとかやってないけど……。






そんなわけでPyQtやることにします

Railsは……?んで、件のPyQtPythonで扱えるQtです。

PyQtは、クロスプラットフォームGUIツールキットであるQtのPythonバインディングにして、PythonGUIプログラミングをするときの選択肢の一つである。PyQtの他には、PySide・PyGTK・wxPythonTkinterなどのGUIツールキットが存在する。Qtと同様にPyQtフリーソフトウェアである。PyQtPythonプラグインとして実装されている。

デスクトップアプリとかが作れるやつです。

公式
Riverbank | Software | PyQt | What is PyQt?



そんで、今日はこんなの作りました。
f:id:andron:20190126102907g:plain
くだらない……。


以下クソコード

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



まあいいや。そんなわけで今日も月曜なので頑張っていきましょう。