Возникла проблема с созданием доп.окон. В окне 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_())