Hi,
I know this is an evergreen topic. And I know that QmitkStdMultiWidget is an old class but with mighty features that I would like to control.
My usecase:
I have a plugin that takes care of a workflow handled by several widgets each taking care of one workflow step.
Within a widget I need to control the layout of the StdMultiWidget.
I know that this was once possible but I don't see how it is to be implemented.
In my plugin I have the following code:
{
// Initialize QmitkStdMultiWidget in case it isn't already
mitk::IRenderWindowPart* render_winow_part = this->GetRenderWindowPart(QmitkAbstractView::OPEN);
mitk::IRenderWindowPart* render_winow_part = this->GetRenderWindowPart(QmitkAbstractView::OPEN);
// Show 3D render window in full screen mode
QmitkRenderWindow* render_window_3d = render_winow_part->GetQmitkRenderWindow("3d");
render_window_3d->FullScreenMode(true);
render_winow_part->GetRenderingManager()->InitializeViews();
QmitkRenderWindow* render_window_3d = render_winow_part->GetQmitkRenderWindow("3d");
render_window_3d->FullScreenMode(true);
render_winow_part->GetRenderingManager()->InitializeViews();
// Disable crosshairs
mitk::ILinkedRenderWindowPart* linked_render_window_part = dynamic_cast<mitk::ILinkedRenderWindowPart*>(render_winow_part);
if (linked_render_window_part != nullptr){
linked_render_window_part->EnableSlicingPlanes(false);
}
mitk::ILinkedRenderWindowPart* linked_render_window_part = dynamic_cast<mitk::ILinkedRenderWindowPart*>(render_winow_part);
if (linked_render_window_part != nullptr){
linked_render_window_part->EnableSlicingPlanes(false);
}
}
This initializes the QmitkStdMultiWidget, sets it to Big3D via setting the 3d widget to fullscreen and disables the crosshair.
-> But I can't set the layout to show a 2D widget on the left side and a 3D widget on the right side.
I see that the linked_render_window_part is the QmitkStdMultiWidgetEditor but as this is a plugin class I can not include, cast, and access it!
I can only reach the interface methods of ILinkedRenderWindowPart and IRenderWindowPart, so enable and disable decorations and such.
If I could reach it I could call GetStdMutliwidget and reach heaven (QmitkStdMultiWidget).
What I also tried was to control the widget via the QmitkRenderWindowMenu (the icons in the upper right corner of the widget) as the QmitkRenderWindow holds it as a member but there is no apropriate public method.
Is there a way to switch the layout from code?
Or do I have to modify the mitk class? If so, what would be the best strategy for it so I could contribute the changes if they are of interest?
Best Regards,
Ingmar
I saw the following user list threads:
http://article.gmane.org/gmane.comp.lib.mitk.user/3843/match=qmitkstdmultiwidget+layout
http://article.gmane.org/gmane.comp.lib.mitk.user/698/match=qmitkstdmultiwidget+layout
------------------------------------------------------------------------------
_______________________________________________ mitk-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mitk-users
