Is there an attribute to position subwindows in qmdiarea? I’m trying to center subwindow in middle of mainwindow on startup (mdiarea)

I’m working on a useful example but haven’t finished it, wanted to see if anyone has tried doing this, and how they did it

Subwindows are randomly placed on startup when initialized


Qt Code:
  1. class App(QMainWindow, Ui_MainWindow):
  2. def __init__(self, parent=None):
  3. QMainWindow.__init__(self, parent=parent)
  4. self.setupUi(self)
  5. self.screenShape = QDesktopWidget().screenGeometry()
  6. self.width = self.screenShape.width()
  7. self.height = self.screenShape.height()
  8. self.resize(self.width * .6, self.height * .6)
  9. self.new = []
  10. #calls GUI's in other modules
  11. self.lw = Login()
  12. self.vs = VS()
  13. self.ms = MS()
  14. self.hw = HomeWindow()
  15. self.mw = MainWindow()
  16. self.ga = GA()
  17. self.sGUI = Settings()
  18. # shows subwindow
  19. self.CreateLogin()
  20. self.CreateVS()
  21. self.CreateMS()
  22. self.CreateGA()
  23. self.CreateSettings()
  24.  
  25. def CreateLogin(self):
  26. self.subwindow = QMdiSubWindow()
  27. self.subwindow.setWidget(self.lw)
  28. self.subwindow.setAttribute(Qt.WA_DeleteOnClose, True)
  29. self.mdiArea.addSubWindow(self.subwindow)
  30. self.subwindow.setMaximumSize(520, 300)
  31. self.subwindow.setMinimumSize(520, 300)
  32. self.lw.showNormal()
  33.  
  34. def CreateVS(self):
  35. self.subwindow = QMdiSubWindow()
  36. self.subwindow.setWidget(self.vs)
  37. self.mdiArea.addSubWindow(self.subwindow)
  38. self.vs.showMinimized()
  39.  
  40. def CreateMS(self):
  41. self.subwindow = QMdiSubWindow()
  42. self.subwindow.setWidget(self.ms)
  43. self.mdiArea.addSubWindow(self.subwindow)
  44. self.ms.showMinimized()
  45. self.ms.tabWidget.setCurrentIndex(0)
  46.  
  47. def CreateGA(self):
  48. self.subwindow = QMdiSubWindow()
  49. self.subwindow.setWidget(self.ga)
  50. self.mdiArea.addSubWindow(self.subwindow)
  51. self.ga.showMinimized()
  52. self.subwindow.setMaximumSize(820, 650)
  53.  
  54. def CreateSettings(self):
  55. self.subwindow = QMdiSubWindow()
  56. self.subwindow.setWidget(self.sGUI)
  57. self.mdiArea.addSubWindow(self.subwindow)
  58. self.sGUI.showMinimized()
  59.  
  60. def CreateWindow(self):
  61. self.hw.pushButton.clicked.connect(self.vs.showNormal)
  62. self.hw.pushButton_2.clicked.connect(self.Moduleprogram)
  63. self.hw.pushButton_3.clicked.connect(self.ms.showNormal)
  64. self.hw.pushButton_4.clicked.connect(self.ga.showNormal)
  65. self.subwindow = QMdiSubWindow()
  66. self.subwindow.setWindowFlags(Qt.CustomizeWindowHint | Qt.Tool)
  67. self.subwindow.setWidget(self.hw)
  68. self.subwindow.setMaximumSize(258, 264)
  69. self.subwindow.move(self.newwidth*.35, self.newheight*.25)
  70. self.mdiArea.addSubWindow(self.subwindow)
To copy to clipboard, switch view to plain text mode