PyQt5 Tutorials

PyQt5ラジオボタン完全ガイド

Spread the love

このチュートリアルでは、PyQt5のQRadioButtonウィジェットの使い方を包括的に解説します。基本事項、setCheckedメソッド、そして相互排他的な選択のためのラジオボタングループの作成について取り上げます。始めましょう!

目次:

  1. QRadioButtonの基本例
  2. setCheckedメソッド
  3. ラジオボタングループの作成
  4. ユーザー選択の処理

1. QRadioButtonの基本例

QRadioButtonを使用すると、ユーザーは複数の選択肢から1つを選択できます。簡単な例を以下に示します。


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("PyQt5 QRadioButton Example")

layout = QVBoxLayout()
label = QLabel("Select an option:")
layout.addWidget(label)

radio1 = QRadioButton("Option 1")
radio2 = QRadioButton("Option 2")
radio3 = QRadioButton("Option 3")

layout.addWidget(radio1)
layout.addWidget(radio2)
layout.addWidget(radio3)

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

これにより、3つの独立したラジオボタンが作成されます。どれが選択されているかを確認するには、isChecked()メソッドを使用します。

2. setCheckedメソッド

setChecked(True)を使用してラジオボタンをプログラムで選択するか、setChecked(False)を使用して選択解除します。


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout, QPushButton

# ... (前のコード) ...

button = QPushButton("Select Option 2")
button.clicked.connect(lambda: radio2.setChecked(True))

layout.addWidget(button)

# ... (残りのコード) ...

これにより、「Option 2」をクリックすると選択されるボタンが追加されます。

3. ラジオボタングループの作成

相互排他的な選択を行うには、QButtonGroupを使用します。これにより、グループ内のボタンは一度に1つしか選択できなくなります。


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout, QButtonGroup

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("PyQt5 QRadioButton Group Example")

layout = QVBoxLayout()
label = QLabel("Select an option:")
layout.addWidget(label)

button_group = QButtonGroup()
radio1 = QRadioButton("Option 1")
radio2 = QRadioButton("Option 2")
radio3 = QRadioButton("Option 3")

button_group.addButton(radio1, 1)
button_group.addButton(radio2, 2)
button_group.addButton(radio3, 3)

layout.addWidget(radio1)
layout.addWidget(radio2)
layout.addWidget(radio3)

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

4. ユーザー選択の処理

buttonClickedシグナルを使用して、ユーザーの選択を効率的に処理します。


button_group.buttonClicked.connect(lambda button: print(f"Selected option: {button_group.id(button)}"))

これにより、選択されたボタンのID(グループに追加時に割り当てられます)が出力されます。print文を目的のアクションに置き換えてください。

この改良されたアプローチは、各ボタンの状態を手動で確認する必要がなくなり、PyQt5アプリケーションでのラジオボタン選択の管理をより堅牢で整理されたものにします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です