このチュートリアルでは、PyQt5のQRadioButton
ウィジェットの使い方を包括的に解説します。基本事項、setChecked
メソッド、そして相互排他的な選択のためのラジオボタングループの作成について取り上げます。始めましょう!
目次:
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アプリケーションでのラジオボタン選択の管理をより堅牢で整理されたものにします。