Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@piiq
Created February 24, 2021 13:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save piiq/62df9c295d4467c2712760dc0ab0747e to your computer and use it in GitHub Desktop.
Save piiq/62df9c295d4467c2712760dc0ab0747e to your computer and use it in GitHub Desktop.
Try to set a simple widget to the central widget of the main window
# Create a widget
mywidget = slicer.qMRMLWidget()
sizePolicy = qt.QSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(1)
sizePolicy.setVerticalStretch(1)
mywidget.setSizePolicy(sizePolicy)
myLayout = qt.QVBoxLayout(mywidget)
myLayout.setObjectName(u"myLayout")
spacer1 = qt.QSpacerItem(20, 40, qt.QSizePolicy.Minimum, qt.QSizePolicy.Expanding)
myLayout.addItem(spacer1)
helloButton = qt.QToolButton(mywidget)
helloButton.setObjectName(u"Hello Button")
helloButton.setText(u"Hello")
helloButton.setMinimumSize(qt.QSize(128, 128))
helloButton.setMaximumSize(qt.QSize(128, 128))
myLayout.addWidget(helloButton)
spacer2 = qt.QSpacerItem(20, 40, qt.QSizePolicy.Minimum, qt.QSizePolicy.Expanding)
myLayout.addItem(spacer2)
# Now what?
# I have the layoutManager and I can set layouts
layoutManager = slicer.app.layoutManager()
layoutManager.setLayout(slicer.vtkMRMLLayoutNode.SlicerLayoutOneUp3DView)
# If I set mywidget to be the CentralWidget
mainWindow = slicer.util.mainWindow()
mainWindow.setCentralWidget(mywidget)
# No turning back
layoutManager.setLayout(slicer.vtkMRMLLayoutNode.SlicerLayoutOneUp3DView)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment