import sys from PySide6.QtWidgets import ( QApplication, QWidget, QLabel, QLineEdit, QCheckBox, QListWidget, QPushButton, QVBoxLayout, QHBoxLayout, QMessageBox ) class MainWindow(QWidget): def __init__(self): super().__init__() self.setWindowTitle("PySide6 GUI サンプル") self.resize(500, 300) # --- 左側ウィジェット --- label = QLabel("名前を入力してください:") self.entry = QLineEdit() self.chk = QCheckBox("同意します") left_layout = QVBoxLayout() left_layout.addWidget(label) left_layout.addWidget(self.entry) left_layout.addWidget(self.chk) left_layout.addStretch() # --- 右側ウィジェット --- self.listbox = QListWidget() for item in ["りんご", "バナナ", "みかん", "ぶどう"]: self.listbox.addItem(item) btn_exec = QPushButton("実行") btn_exec.clicked.connect(self.on_exec) btn_quit = QPushButton("終了") btn_quit.clicked.connect(self.close) right_layout = QVBoxLayout() right_layout.addWidget(self.listbox) right_layout.addWidget(btn_exec) right_layout.addWidget(btn_quit) right_layout.addStretch() # --- メインレイアウト(横並び) --- main_layout = QHBoxLayout() main_layout.addLayout(left_layout, 1) main_layout.addLayout(right_layout, 1) self.setLayout(main_layout) def on_exec(self): name = self.entry.text() checked = "はい" if self.chk.isChecked() else "いいえ" item = self.listbox.currentItem().text() if self.listbox.currentItem() else "未選択" msg = f"こんにちは {name} さん\nチェック: {checked}\n選択: {item}" QMessageBox.information(self, "挨拶", msg) if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec())