CASCADE
означает, что строка также будет удалена, если удалить ForeignKey
.
В вашем случае экземпляр HospitalStay
будет удален, если удалено связанное с ним User
.
QMainWindow имеет специальное поведение для центрального виджета, который не делает QDialog. Для достижения желаемого поведения, необходимо создать расположение, добавить текстовую область к расположению и присвоить расположение диалоговому окну.
Я посмотрел на использование QLayout прежде, но не имел никакой удачи. Я пытался сделать что-то как
dialog.setLayout(some_layout)
но я не мог заставить тот подход работать так, я сдался.
Моя ошибка состояла в том, что я пытался передать расположение диалоговому окну, когда я должен был передавать диалоговое окно расположению.
Добавление строк
layout = QVBoxLayout(self)
layout.add(everything)
в конец TestDialog.__init__
решает проблему.
Благодаря Monjardin для запроса меня пересмотреть разметки.