PythonのPyQtでGUIアプリを開発!初心者向け基本ウィンドウ作成ガイド
生徒
「Pythonでパソコンにウィンドウを表示させる方法を知りたいです。どうやって始めればいいですか?」
先生
「Pythonでは、PyQtというライブラリを使うと、簡単にボタンやテキスト入力などのGUI(グラフィカルユーザーインターフェース)を作ることができます。」
生徒
「PyQtって何ですか?難しそうです…」
先生
「PyQtは、PythonでWindowsやMac、Linuxなどで動くアプリを作るための道具です。ボタンや文字の表示、ウィンドウの操作を簡単に行えます。」
生徒
「なるほど、まずはウィンドウを出すところから始めたいです!」
先生
「では、基本のウィンドウ作成を一緒にやってみましょう。」
1. PyQtのインストール方法
まず最初に、PythonでPyQtを使えるようにするためにライブラリをインストールします。Pythonには「pip」という便利な道具があり、これを使うと外部のライブラリを簡単に追加できます。
# ターミナルやコマンドプロンプトで実行 pip install PyQt5
これでPyQtが使えるようになります。
2. 基本的なウィンドウを作ってみる
次に、最もシンプルなウィンドウを作ってみましょう。ウィンドウとは、アプリの画面のことです。
import sys from PyQt5.QtWidgets import QApplication, QWidget
app = QApplication(sys.argv) # アプリケーションの準備
window = QWidget() # ウィンドウ作成
window.setWindowTitle("はじめてのPyQt") # タイトル設定
window.resize(400, 300) # サイズ設定
window.show() # ウィンドウを表示
sys.exit(app.exec_()) # アプリケーションの実行
このコードを実行すると、400x300ピクセルのウィンドウが表示されます。
3. ウィンドウにラベルを追加する
ウィンドウだけでは味気ないので、文字を表示するラベルを追加してみます。ラベルは単純に文字を表示する部品です。
from PyQt5.QtWidgets import QLabel
label = QLabel("こんにちは、PyQtの世界!", window) # ウィンドウにラベルを作成
label.move(50, 50) # ウィンドウ内の位置を指定
window.show()
「move(x, y)」でウィンドウ内の表示位置を決めています。左上が (0,0) です。
4. ボタンを追加して操作できるようにする
ボタンを押すと何かが起こるようにするとアプリらしくなります。PyQtでは QPushButton を使います。
from PyQt5.QtWidgets import QPushButton
def on_click():
label.setText("ボタンが押されました!")
button = QPushButton("押してね", window)
button.move(50, 100)
button.clicked.connect(on_click) # ボタン押下時に関数を呼び出す
window.show()
これで、ボタンを押すとラベルの文字が変わります。
5. 入力欄(テキストボックス)を作る
ユーザーから文字を入力してもらいたいときは QLineEdit を使います。
from PyQt5.QtWidgets import QLineEdit
text_input = QLineEdit(window)
text_input.move(50, 150)
text_input.setPlaceholderText("ここに文字を入力してください")
def show_input():
label.setText("入力内容: " + text_input.text())
button.clicked.connect(show_input) # ボタンで入力内容を表示
これで、ボタンを押すと入力された文字がラベルに表示されます。
6. ウィンドウのレイアウトを整える
今までのコードでは部品の位置を手動で決めていましたが、レイアウトを使うと自動で整列できます。
from PyQt5.QtWidgets import QVBoxLayout
layout = QVBoxLayout()
layout.addWidget(label)
layout.addWidget(text_input)
layout.addWidget(button)
window.setLayout(layout)
window.show()
これで、ウィンドウのサイズに応じてボタンやラベルがきれいに並びます。
7. GUIアプリでよく使う便利な部品
PyQtには他にも便利な部品があります。チェックボックス(QCheckBox)、ラジオボタン(QRadioButton)、リスト(QListWidget)などです。
from PyQt5.QtWidgets import QCheckBox
checkbox = QCheckBox("チェックしてね", window)
checkbox.move(50, 200)
def check_state():
if checkbox.isChecked():
label.setText("チェックされています")
else:
label.setText("チェックされていません")
button.clicked.connect(check_state)
これでチェックボックスの状態をボタンで確認できます。
8. PyQtで簡単なアプリを作るポイントまとめ
PyQtでアプリを作るときは次のポイントを覚えておくと便利です。
- QApplicationを作ってアプリ全体を管理する
- QWidgetでウィンドウを作る
- ボタンやラベル、入力欄を追加してユーザーとやり取り
- レイアウトを使うと部品の配置が簡単
- 関数と
clicked.connectを使って操作を反映させる
これらを組み合わせることで、簡単なGUIアプリをPythonで作れるようになります。
まとめ
この記事では、PythonのPyQtを使ったGUIアプリの基本的な作り方について詳しく学びました。まず、PythonでPyQtを利用するにはライブラリをインストールする必要があります。pipを使った簡単な方法でインストールでき、初心者でもすぐに始められます。その後、QApplicationを作成してアプリ全体を管理し、QWidgetで基本ウィンドウを作る手順を理解しました。ウィンドウにはタイトルを設定し、サイズを調整することが可能です。また、QLabelで文字を表示したり、QPushButtonを使ってボタンを追加することでユーザーとのインタラクションを実現できます。ボタンを押したときにラベルの文字を変更する例や、QLineEditで文字入力を受け取り、ボタン操作で表示する方法も学びました。さらに、手動で配置する方法だけでなく、QVBoxLayoutなどのレイアウトを使うことで、ウィンドウのサイズに応じて部品を自動整列させるテクニックも理解できました。最後に、チェックボックスやラジオボタン、リストウィジェットなど、PyQtでよく使う便利な部品についても触れ、GUIアプリ作成の幅が広がることを確認しました。これらを組み合わせることで、簡単なGUIアプリから少し複雑なアプリまで、自分で自由に作ることができるようになります。
サンプルプログラムで振り返る
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QLineEdit, QVBoxLayout
# アプリケーションの準備
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("PyQtまとめウィンドウ")
window.resize(400, 300)
# ラベルの作成
label = QLabel("ここに文字が表示されます", window)
# 入力欄の作成
text_input = QLineEdit(window)
text_input.setPlaceholderText("文字を入力してください")
# ボタンの作成と操作
def on_click():
label.setText("入力内容: " + text_input.text())
button = QPushButton("表示", window)
button.clicked.connect(on_click)
# レイアウトで整列
layout = QVBoxLayout()
layout.addWidget(label)
layout.addWidget(text_input)
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
生徒
「PyQtでここまでいろんなことができるんですね。ウィンドウを出して、ボタンや入力欄まで簡単に作れるなんて驚きです。」
先生
「そうです。最初は基本のウィンドウを作ることから始めますが、ラベルやボタン、入力欄を追加することで、ユーザーとのやり取りも簡単にできます。」
生徒
「レイアウトを使うと配置も自動で整列されるので、画面サイズを変えても見た目が崩れませんね。」
先生
「その通りです。PyQtには他にも便利な部品がたくさんあるので、今回学んだ基本を応用すれば、チェックボックスやリスト、ラジオボタンなども簡単に扱えるようになります。」
生徒
「これで自分でも小さなGUIアプリを作れる自信がつきました!」
先生
「素晴らしいですね。まずは簡単なウィンドウアプリから始めて、少しずつ部品やレイアウトを工夫して、自分だけのアプリを作ってみましょう。」