Задать вопрос
zabigun
@zabigun

Как открыть дочернее окно в python qt digner?

Сделал две формы по отдельности работают
Как сделать второе дочерним?
Вот первое
import sys  # sys нужен для передачи argv в QApplication
from PyQt5 import QtWidgets
import untitled  # Это наш конвертированный файл дизайна
import two

class ExampleApp(QtWidgets.QMainWindow, untitled.Ui_MainWindow):
    def __init__(self):

        super().__init__()
        self.setupUi(self)  
        self.pushButton.clicked.connect(self.browse)


    def browse(self):
        dialog =  two.Dialog()
        dialog.show()


        
        
        
if __name__ == '__main__':  # Если мы запускаем файл напрямую, а не импортируем
    app = QtWidgets.QApplication(sys.argv)  # Новый экземпляр QApplication
    window = ExampleApp()  # Создаём объект класса ExampleApp
    window.show()  # Показываем окно
    app.exec_()  # и запускаем приложение

Вот второе:
import sys  # sys нужен для передачи argv в QApplication
from PyQt5 import QtWidgets
import untitled2  # Это наш конвертированный файл дизайна


class Dialog(QtWidgets.QMainWindow, untitled2.Ui_Dialog):
    def __init__(self):

        super().__init__()
        self.setupUi(self)


В итоге при нажатии на кнопку второе открывается но сразу закрывается (
Помогите пожалуйста, заранее благодарен.
Так же мне необходимо передать в во второе некую переменную помогите с этим тоже (
  • Вопрос задан
  • 114 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
zabigun
@zabigun Автор вопроса
В общем может кому нужно будет вот решение:
import sys  # sys нужен для передачи argv в QApplication
from PyQt5 import QtWidgets
import untitled  # Это наш конвертированный файл дизайна
import two

class ExampleApp(QtWidgets.QMainWindow, untitled.Ui_MainWindow):
    def __init__(self):

        super().__init__()
        self.setupUi(self)  
        self.pushButton.clicked.connect(self.browse)


    def browse(self):
        dialog =  two.Dialog(self)
        dialog.show()
        dialog.label.setText("PyScripts") # Меняем текст


        
        
        
if __name__ == '__main__':  # Если мы запускаем файл напрямую, а не импортируем
    app = QtWidgets.QApplication(sys.argv)  # Новый экземпляр QApplication
    window = ExampleApp()  # Создаём объект класса ExampleApp
    window.show()  # Показываем окно
    app.exec_()  # и запускаем приложение

import sys  # sys нужен для передачи argv в QApplication
from PyQt5 import QtWidgets
import untitled2  # Это наш конвертированный файл дизайна


class Dialog(QtWidgets.QMainWindow, untitled2.Ui_Dialog):
    def __init__(self, parent=None):

        super(Dialog, self).__init__(parent)
        self.setupUi(self)

Я успешно могу меня свойства Label в дочернем окне из родителя, но как получить доступ из дочерней к родительской?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Надо указать в качестве родителя первое окно (см. параметр parent в QMainWindow)
Ответ написан
Ваш ответ на вопрос

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

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