Функционал QRadioButton в окне QMessageBox

Вопрос: Возможно ли в тело QMessageBox встроить функционал QradioButton? Скрипт (radio.py).

Трудности: не получается в тело стандартного окна QMessageBox (с иконкой setIcon() и кнопками) встроить QRadioButton.

Для примера: скрин с окном QMessageBox и встроенным в него QCheckBox.

введите сюда описание изображения

radio.py

import sys, time
from PyQt5.QtWidgets import (QVBoxLayout, QWidget, QPushButton,
                             QButtonGroup, QRadioButton, QLabel, QApplication, QMessageBox,
                             QHBoxLayout)
from PyQt5.QtCore import Qt

class Widg(QWidget):
    def __init__(self):
        super(Widg, self).__init__()
        self.setWindowTitle('Внимание!')

        label_tk = QLabel()
        label_tk.setText('''
          <p> 
            <img src="smiley.gif" alt="icon face" 
             width="42" height="42" 
             style="vertical-align:top"> 
            Необходимо выбрать браузер.
          </p>
         ''')
        # !!! +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        self.label_p = QLabel()
        self.check_button = None  # !!! +++

        self.group = QButtonGroup()
        self.rad1 = QRadioButton("Coogle Chrome (рекомендуется)")
        self.rad2 = QRadioButton("PhantomJS Driver")

        self.btn1 = QPushButton('Старт')
        self.btn1.clicked.connect(self.btn1_clicked)  # !!! +++

        self.btn2 = QPushButton('Отмена')
        self.btn2.clicked.connect(self.btn2_clicked)

        layout = QVBoxLayout()
        layout.addWidget(label_tk, alignment=Qt.AlignCenter)
        layout.addWidget(self.rad1)
        layout.addWidget(self.rad2)
        layout.addWidget(self.label_p)

        layoutH = QHBoxLayout()
        layoutH.addWidget(self.btn1)
        layoutH.addWidget(self.btn2)
        layout.addLayout(layoutH)

        self.group.addButton(self.rad1)
        self.group.addButton(self.rad2)
        self.group.buttonClicked.connect(self.group_check_button)

        self.setLayout(layout)

    # !!! +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    def group_check_button(self, rb):
        self.check_button = rb

    def btn1_clicked(self):
        if not self.check_button:
            msg = QMessageBox.information(
                self,
                'Внимание',
                'Вы не сделали выбор?')
            return
        print(f'Выбран: {self.check_button.text()}')
        self.label_p.setText(f'Выбран: {self.check_button.text()}')
        time.sleep(1.0)
        if self.check_button.text() == "Coogle Chrome (рекомендуется)":
            print('Coogle Chrome (рекомендуется)')
            # import image_chrome
        else:
            print('PhantomJS Driver')
            # import image
        self.close()
    # !!! +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    def btn2_clicked(self):
        print('Нажата кнопка: отмена')
        self.close()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = Widg()
    w.resize(250, 250)
    w.show()
    sys.exit(app.exec_())

Ответы (0 шт):