Как сделать QMessageBox со spinBox?

Я попытался сделать в QtDesigner шаблон диалогового окна, но возникли проблемы с ссылкой на метод вызывающий данное окно, теперь я хотел бы узнать - можно ли а QMessageBox вставить spinBox? Работаю в PyQt5


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

Автор решения: S. Nick

Хотя ваши высказывания противоречивы, с одной стороны вы пишите попытался сделать в QtDesigner шаблон диалогового окна, но возникли проблемы ..., с другой стороны - Дело в том, что сейчас никакого кода нет. Странно как-то.

Все делается как обычно:

import sys
from PyQt5.Qt import *


class MessageBox(QMessageBox):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.spinbox = QSpinBox(self)
        self.spinbox.setRange(-99, 99)                                                      
        self.spinbox.setSingleStep(1)                                                     
        self.spinbox.setValue(66)                                                           


class MainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)

        container = QWidget()
        containerLayout = QVBoxLayout()
        container.setLayout(containerLayout)
        self.setCentralWidget(container)

        self.label = QLabel()
        button = QPushButton('Вызвать Диалоговое окно', clicked=self.onClicked)

        containerLayout.addWidget(self.label)
        containerLayout.addWidget(button)

    def onClicked(self):
        self.messageBox = MessageBox()
        msg = self.messageBox.exec_()

        self.label.setText(str(self.messageBox.spinbox.value()))


if __name__=="__main__":        
    app = QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())

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

→ Ссылка