Давай по задачам:
1. "открывается только одно дочернее окно" - я бы рекомендовал наследоваться не от QMainWindow, а от QDialog:
class Dialog(QtWidgets.QDialog, untitled2.Ui_Dialog):
тогда открытое окно будет блокировать родительское и ты спокойно можешь в нем работать (но если вдруг предусматривается работа в двух окнах сразу, то тогда - зачем вообще второе диалоговое окно?! делай две области в родительском и работай там)
2. "дочерней передается переменная" - у класса Dialog, в методе _init передай эту переменную:
def __init__(self, parent, connect_sql):
self.connect_sql = connect_sql
и всё, дальше с ней работаешь.
3. "из дочки были доступны свойства виджетов родителя" - для этого ты и передаешь в классе Dialog, в методе _init аргумент parent (= two.Dialog(self) - вот этот self это и есть ссылка на родителя) только не забудь:
def __init__(self, parent, connect_sql):
self.parent = parent
self.connect_sql = connect_sql
и тогда ты сможешь обратиться к объекту родителя
self.parent.label.setText("информация передана из дочернего окна")
(предполагается конечно что у родителя есть объект label = QLable)
НО такая взаимосвязь в корне ошибочна! (читать если скучно... :))
spoilerПока программа маленькая ок, но как только все разрастется ты умрешь отслеживать, что от кого куда передалось и главное почему! При разработке больших приложений нужно использовать определенные паттерны в построении взаимосвязей. Model-View-Controller (MVC) - если коротко когда ты делишь все приложение на три логических объекта Модель (она занимается всеми расчетами и переработками данных), Интерфейс (View - в данном случае это библиотека QT) он получает сигналы и данные от пользователя и передает их в Модель. И Controller, который связывает Модель и Интерфейс. Причем в идеале Модель вообще ни чего не знает от двух других и просто сообщает об изменении своего состояния и готовности обработанных данных, а Контролер который подписан на Модель (паттерн Наблюдатель) следит за этими изменениями и реагирует когда нужно.
И последний совет при создании файлов интерфейсов (дизайнов) untitled всем объектам давай понятные имена, чтобы потом читая код было ясно для чего этот элемент используется.
self.button_open_dialog.clicked.connect(self.browse) - ну хотя бы как-то так (а в идеале что именно за диалог)