Как сделать 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_())
