コンテンツにスキップ

Python/PyQt

出典: フリー教科書『ウィキブックス(Wikibooks)』

Python/PyQtの概要

[編集]

PyQt(パイクューティ)は、Pythonで利用できるQtフレームワークのラッパーライブラリであり、GUIアプリケーションの開発をサポートします。Qtは、C++で開発されたマルチプラットフォームのアプリケーションフレームワークであり、PyQtを使用することでPythonからQtの機能を利用することができます。PyQtは、Qtの全ての機能にアクセスできる強力なツールキットであり、デスクトップアプリケーションやグラフィカルなユーザーインターフェースを持つアプリケーションの開発に広く利用されています。

主な機能

[編集]
  1. GUIアプリケーション開発: PyQtは、Qtの各種ウィジェットを利用してGUIアプリケーションを開発するためのモジュールを提供します。ウィンドウ、ボタン、テキストボックス、テーブルなどの各種ウィジェットを組み合わせて、グラフィカルなユーザーインターフェースを簡単に構築できます。
  2. イベント処理: PyQtは、ユーザーからのイベント(ボタンクリックなど)を処理するための仕組みを提供します。イベントに対するコールバック関数を定義することで、ユーザーの操作に応じてアプリケーションの動作を制御できます。
  3. グラフィックスとアニメーション: PyQtは、2Dおよび3Dグラフィックスをサポートしており、グラフィックスプログラムを簡単に作成することができます。また、アニメーション機能も提供されており、アプリケーションに動きや効果を追加することが可能です。
  4. データベースアクセス: PyQtは、データベースとの連携をサポートしており、SQLiteやMySQLなどのデータベースに対してデータの読み書きを行うことができます。

Python/PyQtのコード例

[編集]

シンプルなGUIアプリケーションの例

[編集]
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout

app = QApplication(sys.argv)

window = QWidget()
layout = QVBoxLayout()

label = QLabel("Hello, PyQt!")
layout.addWidget(label)

window.setLayout(layout)
window.show()

sys.exit(app.exec_())

ボタンクリックイベント処理の例

[編集]
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout

def on_button_click():
    label.setText("Button Clicked!")

app = QApplication(sys.argv)

window = QWidget()
layout = QVBoxLayout()

button = QPushButton("Click Me!")
button.clicked.connect(on_button_click)
layout.addWidget(button)

label = QLabel("Press the button to change this text.")
layout.addWidget(label)

window.setLayout(layout)
window.show()

sys.exit(app.exec_())

データベースアクセスの例

[編集]
import sys
import sqlite3
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout

# SQLiteデータベースに接続
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# テーブル作成
cursor.execute('CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY, name TEXT)')

# データ挿入
cursor.execute('INSERT INTO mytable (name) VALUES (?)', ('Alice',))
cursor.execute('INSERT INTO mytable (name) VALUES (?)', ('Bob',))
conn.commit()

# データ取得
cursor.execute('SELECT * FROM mytable')
data = cursor.fetchall()

app = QApplication(sys.argv)

window = QWidget()
layout = QVBoxLayout()

for row in data:
    label = QLabel(row[1])
    layout.addWidget(label)

window.setLayout(layout)
window.show()

sys.exit(app.exec_())

PyQtのインストール方法

[編集]

PyQtはpipコマンドを使用して簡単にインストールすることができます。以下のコマンドを実行してください:

pip install PyQt5