pyQt
はじめに
画面をまずは作ろうと思い、pyQt5を勉強することにしました。 動きが見えた方がやる気が出るので(笑)
pyQt5の説明からすると、 Qt(キュート)というC++のGUIツール開発のための クロスプラットフォームフレームワークを Python向けにバインディングしたものです。
要は、簡単にGUIツールが作れるフレームワークということです。
環境整備
Anacondaを使って行きます。Spyderで実行します。 Anacondaについてもいずれ軽く触れたいですね。
AnacondaをインストールしていればpyQt5はすでに使用できるはずです。
※使用するにはPython 2.6以上が必要
pyQt5を動かしていきましょう!
以下が基本的な書き方となる
import sys from PyQt5.QtWidgets import QApplication, QWidget if __name__ == '__main__': app = QApplication(sys.argv) widget = QWidget() widget.resize(250, 150) widget.move(300, 300) widget.setWindowTitle('sample') widget.show() sys.exit(app.exec_())
実行すると以下の画面が表示される
解説
appを宣言
app = QApplication(sys.argv)
画面を定義
widget = QWidget() widget.resize(250, 150) widget.move(300, 300) widget.setWindowTitle('sample')
表示(show)
widget.show()
終了処理
sys.exit(app.exec_())
画面はクラス化して管理!
先ほどと同じ画面が表示される
import sys from PyQt5.QtWidgets import QApplication, QWidget class ExampleWidget(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.resize(250, 150) self.move(300, 300) self.setWindowTitle('sample') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ew = ExampleWidget() sys.exit(app.exec_())
pyQt5でアプリを作ってみよう!
Qtの3大機能
Qtの重要な機能は、「signal」「connect」「slot」の3つである。 特定のイベントを「signal」に、イベントをトリガに呼び出す関数を「slot」に定義する。 「signal」と「slot」を結びつけるのが「connect」である。
以下を実行すると、 「Clear!!」ボタンを押すことで、「connected」の文字が消える機能を持った画面が作成されます
import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout, QLabel class ExampleWidget(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.resize(250, 150) self.move(300, 300) self.setWindowTitle('sample') # buttonの設定 self.button = QPushButton('Clear!!') self.label = QLabel('connected') # buttonのclickでラベルをクリア self.button.clicked.connect(self.label.clear) # レイアウト配置 self.grid = QGridLayout() self.grid.addWidget(self.button, 0, 0, 1, 1) self.grid.addWidget(self.label, 1, 0, 1, 2) self.setLayout(self.grid) # 表示 self.show() if __name__ == '__main__': app = QApplication(sys.argv) ew = ExampleWidget() sys.exit(app.exec_())
「Clear!!」ボタン押下
各関数の使い方
マニュアルのリンクを貼っておきます。
PyQt5 Reference Guide — PyQt v5.15.0 Reference Guide
実際にボタンなどを配置してみたソースも参考程度に貼っておきます。 解説はまた時間があるときにでも。。
import sys from PyQt5.QtWidgets import (QApplication, QWidget, QMainWindow, QPushButton, QMessageBox, QLineEdit, QAction, QTableWidget, QTableWidgetItem, QVBoxLayout ) from PyQt5.QtCore import pyqtSlot from PyQt5.QtGui import QIcon class App(QMainWindow): def __init__(self): super().__init__() self.title = "PyQt5 status bar example - pythonspot.com" self.left = 10 self.top = 10 self.width = 640 self.height = 480 self.initUI() def initUI(self): # ステータスバー配置 self.setWindowTitle(self.title) self.setGeometry(self.left, self.top, self.width, self.height) self.statusBar().showMessage("Message in statusbar.") # メニューバー配置 mainMenu = self.menuBar() fileMenu = mainMenu.addMenu("File") editMenu = mainMenu.addMenu("Edit") viewMenu = mainMenu.addMenu("View") searchMenu = mainMenu.addMenu("Search") toolsMenu = mainMenu.addMenu("Tools") helpMenu = mainMenu.addMenu("Help") exitButton = QAction("Exit", self) exitButton.setShortcut("Ctrl+Q") exitButton.setStatusTip("Exit application") exitButton.triggered.connect(self.close) fileMenu.addAction(exitButton) mainMenu.setNativeMenuBar(False) #macではこのコマンドがないと表示されない # テキストボックス配置 self.textbox = QLineEdit(self) self.textbox.move(20, 20) self.textbox.resize(280,40) # ボタン配置 self.button = QPushButton("Show text", self) self.button.move(20,80) self.button.clicked.connect(self.on_click) # 画面表示 self.show() @pyqtSlot() def on_click(self): textboxValue = self.textbox.text() QMessageBox.question(self, "Message - pythonspot.com", "You typed: " + textboxValue, QMessageBox.Ok, QMessageBox.Ok ) self.textbox.setText("") if __name__ == "__main__": app = QApplication(sys.argv) ex = App() sys.exit(app.exec_())
まずは形から
MacBookAirを購入しました!!!
AirPods Proも欲しくてついでに買っちゃいました(笑)
ビッグカメラで分割手数料0円キャンペーンをやっていたので、24回分割しました。
月々8000円くらいだったかな。
私は形から入るタイプなので、こういう良いものを買って、
モチベーションをあげないと頑張れません(笑)
AirPodsでノイキャンしながら、このMacBookAirで
Pythonの勉強していこうと思います!
URL貼っておきますので、どんなの買ったの!?ってかたは
以下から見れますよ〜
MacBookAir
https://www.apple.com/jp/macbook-air/
https://www.apple.com/jp/airpods-pro/