from PyQt5.QtWidgets import QDialog, QGridLayout, QPushButton, QRadioButton, QButtonGroup, QApplication


class DyStockTableSelectDlg(QDialog):

    def __init__(self, data, dlgName):
        super().__init__()

        self._data = data

        self._initUi(dlgName)

    def _initUi(self, dlgName):
        self.setWindowTitle(dlgName)
 
        allRadioButton = QRadioButton('所有'); allRadioButton.setChecked(True)
        highlightRadioButton = QRadioButton('高亮')

        # 添加到QButtonGroup
        self._buttonGroup = QButtonGroup()
        self._buttonGroup.addButton(allRadioButton, 1); 
        self._buttonGroup.addButton(highlightRadioButton, 2)

        cancelPushButton = QPushButton('Cancel')
        okPushButton = QPushButton('OK')
        cancelPushButton.clicked.connect(self._cancel)
        okPushButton.clicked.connect(self._ok)

        # 布局
        grid = QGridLayout()
        grid.setSpacing(10)
 
        grid.addWidget(allRadioButton, 1, 0)
        grid.addWidget(highlightRadioButton, 1, 1)

        grid.addWidget(okPushButton, 2, 1)
        grid.addWidget(cancelPushButton, 2, 0)
 
        self.setLayout(grid)
        self.setMinimumWidth(QApplication.desktop().size().width()//5)

    def _ok(self):
        checkedButton = self._buttonGroup.checkedButton()
        text = checkedButton.text()
        self._data['all'] = True if text == '所有' else False

        self.accept()

    def _cancel(self):
        self.reject()