@DaniilKkk

Проблема с созданием диалогового окна,как реализовать?

Возникла проблема с созданием доп.окон. В окне ChooseWindow есть две кнопки в зависимости от нажатия кнопки открывается разные окна ,в одном ввод файла в другом ввод размеров для изображения, нужно чтобы при нажатии на вторую кнопку отображался интерфейс с вводом размеров.

И при вводе размеров окна сворачивались.

Как это реализовать?

Пример кода:

class CreatePicture(QtWidgets.QDialog):
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)
        self.input_width = QtWidgets.QPushButton("Width")
        self.input_height = QtWidgets.QPushButton("Height")
        self.vbox = QtWidgets.QVBoxLayout()
        self.vbox.addWidget(self.input_width)
        self.vbox.addWidget(self.input_height)
        self.setLayout(self.vbox)
        self.input_width.clicked.connect(self.on_width)
        self.input_height.clicked.connect(self.on_height)

    def on_width(self):
        width_length, ok = QInputDialog.getInt(self, 'Width of picture in px', 'Enter width')
        if ok:
            global_variables['width'] = width_length

    def on_height(self):
        height_length, ok = QInputDialog.getInt(self, 'Height of picture in px', 'Enter height')
        if ok:
            global_variables['height'] = height_length

class ChooseWindow(QtWidgets.QWidget):
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)
        self.choosepicture = QtWidgets.QPushButton("Выбрать фото")
        self.createproject = QtWidgets.QPushButton("Создать проект")
        self.vbox = QtWidgets.QVBoxLayout()
        self.vbox.addWidget(self.choosepicture)
        self.vbox.addWidget(self.createproject)
        self.setLayout(self.vbox)
        self.createproject.clicked.connect(self.on_create_project)
        self.choosepicture.clicked.connect(self.on_open_file)

    def on_create_project(self):
        testGui = CreatePicture()
        testGui.resize(500, 500)
        testGui.show()

    def on_open_file(self):
        workspace = QtWidgets.QFileDialog.getOpenFileUrl(parent=self, caption="Выберите файл",
                                                         directory=QtCore.QDir.currentPath(),
                                                         filter="Image Files (*.png *.jpg *.bmp ")


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    dialogWindow = ChooseWindow()
    dialogWindow.setWindowTitle('Select')
    dialogWindow.resize(200, 150)
    dialogWindow.show()
    sys.exit(app.exec_())
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы