カテゴリ: Python 更新日: 2026/06/21

PythonのPyQtでGUIアプリを開発!初心者向け基本ウィンドウ作成ガイド

PythonのPyQtでGUIアプリを開発する方法!基本のウィンドウ作成
PythonのPyQtでGUIアプリを開発する方法!基本のウィンドウ作成

先生と生徒の会話形式で理解しよう

生徒

「Pythonでパソコンにウィンドウを表示させる方法を知りたいです。どうやって始めればいいですか?」

先生

「Pythonでは、PyQtというライブラリを使うと、簡単にボタンやテキスト入力などのGUI(グラフィカルユーザーインターフェース)を作ることができます。」

生徒

「PyQtって何ですか?難しそうです…」

先生

「PyQtは、PythonでWindowsやMac、Linuxなどで動くアプリを作るための道具です。ボタンや文字の表示、ウィンドウの操作を簡単に行えます。」

生徒

「なるほど、まずはウィンドウを出すところから始めたいです!」

先生

「では、基本のウィンドウ作成を一緒にやってみましょう。」

1. PyQtのインストール方法

1. PyQtのインストール方法
1. PyQtのインストール方法

まず最初に、PythonでPyQtを使えるようにするためにライブラリをインストールします。Pythonには「pip」という便利な道具があり、これを使うと外部のライブラリを簡単に追加できます。

 # ターミナルやコマンドプロンプトで実行 pip install PyQt5

これでPyQtが使えるようになります。

2. 基本的なウィンドウを作ってみる

2. 基本的なウィンドウを作ってみる
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. ウィンドウにラベルを追加する

3. ウィンドウにラベルを追加する
3. ウィンドウにラベルを追加する

ウィンドウだけでは味気ないので、文字を表示するラベルを追加してみます。ラベルは単純に文字を表示する部品です。

 from PyQt5.QtWidgets import QLabel
label = QLabel("こんにちは、PyQtの世界!", window) # ウィンドウにラベルを作成
label.move(50, 50) # ウィンドウ内の位置を指定

window.show()

「move(x, y)」でウィンドウ内の表示位置を決めています。左上が (0,0) です。

4. ボタンを追加して操作できるようにする

4. ボタンを追加して操作できるようにする
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. 入力欄(テキストボックス)を作る

5. 入力欄(テキストボックス)を作る
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. ウィンドウのレイアウトを整える

6. ウィンドウのレイアウトを整える
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アプリでよく使う便利な部品

7. GUIアプリでよく使う便利な部品
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で簡単なアプリを作るポイントまとめ

8. PyQtで簡単なアプリを作るポイントまとめ
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アプリを作れる自信がつきました!」

先生

「素晴らしいですね。まずは簡単なウィンドウアプリから始めて、少しずつ部品やレイアウトを工夫して、自分だけのアプリを作ってみましょう。」

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
Python のGUIプログラミングの記事一覧へ
新着記事
New1
Python
Pythonの整数と浮動小数点数の違いとは?数値型の基本を解説
New2
Python
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
New3
Python
Pythonのbreakとcontinueの違いとは?ループの制御方法をマスター
New4
Python
Pythonのstartswith()・endswith()の使い方!文字列の前後をチェック
人気記事
No.1
Java&Spring記事人気No1
PHP
PHPの特殊文字とエスケープ処理を完全ガイド!初心者向けにhtmlspecialcharsとhtmlentitiesをやさしく解説
No.2
Java&Spring記事人気No2
PHP
PHP の文字列のフォーマット(sprintf, printf)
No.3
Java&Spring記事人気No3
Python
Pythonで文字列を置換する方法!replace()の使い方と正規表現の活用
No.4
Java&Spring記事人気No4
Python
Pythonのクロージャー(Closure)とは?関数内関数とnonlocalの活用
No.5
Java&Spring記事人気No5
Python
Pythonでリストを分割する方法(スライス / split() / itertools)
No.6
Java&Spring記事人気No6
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
No.7
Java&Spring記事人気No7
PHP
PHPの認証機能を実装する方法!初心者でもわかるログイン・ログアウト処理の基本
No.8
Java&Spring記事人気No8
Python
Pythonのstartswith()・endswith()の使い方!文字列の前後をチェック