はんぎょねこの憂鬱

耳から変な汁が出てきた

PySide Custom Dialog

Dialogを自分で実装するときのポイント
  • QDialogを継承する
  • ボタン表示にはQDialogButtonBoxを使う
こんなかんじ
from PySide import QtCore, QtGui
import sys


class CustomDialog(QtGui.QDialog):
    def __init__(self):
        super().__init__()
        self._buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel)
        self._buttons.accepted.connect(self.accept)
        self._buttons.rejected.connect(self.reject)
        mainLayout = QtGui.QVBoxLayout()
        mainLayout.addWidget(self._buttons)
        self.setLayout(mainLayout)
        self.setWindowTitle('Custom Dialog')


app = QtGui.QApplication(sys.argv)
mainwindow = QtGui.QMainWindow()
mainwindow.show()
dialog = CustomDialog()
if QtGui.QDialog.Accepted == dialog.exec_():
    QtGui.QMessageBox.information(None, 'Info', 'accepted!', QtGui.QMessageBox.Ok)
else:
    QtGui.QMessageBox.critical(None, 'Info', 'rejected!', QtGui.QMessageBox.Ok)