Slicer 5.13
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
qSlicerBaseQTGUIPythonQtDecorators.h
Go to the documentation of this file.
1/*=auto=========================================================================
2
3 Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH)
4 All Rights Reserved.
5
6 See COPYRIGHT.txt
7 or http://www.slicer.org/copyright/copyright.txt for details.
8
9 Program: 3D Slicer
10
11=========================================================================auto=*/
12
13#ifndef __qSlicerBaseQTGUIPythonQtDecorators_h
14#define __qSlicerBaseQTGUIPythonQtDecorators_h
15
16// PythonQt includes
17#include <PythonQt.h>
18
19// CTK includes
20#include <ctkErrorLogModel.h>
21
22#include "vtkSlicerConfigure.h" // For Slicer_USE_QtTesting
23
24// CTK includes
25#ifdef Slicer_USE_QtTesting
26# include <ctkQtTestingUtility.h>
27#endif
28
29// Slicer includes
34#include "qSlicerIOManager.h"
37
38#include "qSlicerBaseQTGUIExport.h"
39
40// NOTE:
41//
42// For decorators it is assumed that the methods will never be called
43// with the self argument as nullptr. The self argument is the first argument
44// for non-static methods.
45//
46
48{
49 Q_OBJECT
50
51public:
53 {
54 PythonQt::self()->registerClass(&qSlicerAbstractModuleWidget::staticMetaObject);
55 PythonQt::self()->registerClass(&qSlicerPythonManager::staticMetaObject);
56 PythonQt::self()->registerClass(&qSlicerCommandOptions::staticMetaObject);
57#ifdef Slicer_USE_QtTesting
58 PythonQt::self()->registerClass(&ctkQtTestingUtility::staticMetaObject);
59#endif
60 PythonQt::self()->registerClass(&ctkErrorLogModel::staticMetaObject);
61 PythonQt::self()->registerClass(&ctkErrorLogTerminalOutput::staticMetaObject);
62 // Note: Use registerCPPClassForPythonQt to register pure Cpp classes
63 }
64
65public slots:
66
67 //----------------------------------------------------------------------------
68 // qSlicerAbstractModule
69
70 //----------------------------------------------------------------------------
72
73 //----------------------------------------------------------------------------
78
79 //----------------------------------------------------------------------------
80 // qSlicerAbstractModule
81
82 //----------------------------------------------------------------------------
83 qSlicerAbstractModule* module(qSlicerAbstractModuleWidget* _moduleWidget) { return dynamic_cast<qSlicerAbstractModule*>(_moduleWidget->module()); }
84
85 //----------------------------------------------------------------------------
86 // qSlicerIOManager
87
88 // The returned options widgets are owned by Python (they are deleted when they are no longer
89 // referenced in Python), unless they have a parent (then the parent deletes them).
90
91 //----------------------------------------------------------------------------
92 PythonQtPassOwnershipToPython<qSlicerIOOptionsWidget*> fileOptionsWidget(qSlicerIOManager* ioManager, const QString& fileDescription, QWidget* parent = nullptr)
93 {
94 return ioManager->fileOptionsWidget(fileDescription, parent);
95 }
96
97 //----------------------------------------------------------------------------
98 PythonQtPassOwnershipToPython<qSlicerIOOptionsWidget*> fileWriterOptionsWidget(qSlicerIOManager* ioManager,
99 vtkObject* object,
100 const QString& extension = QString(),
101 QWidget* parent = nullptr)
102 {
103 return ioManager->fileWriterOptionsWidget(object, extension, parent);
104 }
105};
106
107//-----------------------------------------------------------------------------
109{
110 PythonQt::self()->addDecorators(new qSlicerBaseQTGUIPythonQtDecorators);
111}
112
113#endif
qSlicerAbstractModuleRepresentation * createNewWidgetRepresentation()
qSlicerAbstractModuleRepresentation * widgetRepresentation()
qSlicerAbstractCoreModule * module() const
qSlicerAbstractModuleWidget * createNewWidgetRepresentation(qSlicerAbstractModule *_module)
qSlicerAbstractModule * module(qSlicerAbstractModuleWidget *_moduleWidget)
PythonQtPassOwnershipToPython< qSlicerIOOptionsWidget * > fileOptionsWidget(qSlicerIOManager *ioManager, const QString &fileDescription, QWidget *parent=nullptr)
PythonQtPassOwnershipToPython< qSlicerIOOptionsWidget * > fileWriterOptionsWidget(qSlicerIOManager *ioManager, vtkObject *object, const QString &extension=QString(), QWidget *parent=nullptr)
qSlicerAbstractModuleWidget * widgetRepresentation(qSlicerAbstractModule *_module)
qSlicerIOOptionsWidget * fileWriterOptionsWidget(vtkObject *object, const QString &extension=QString(), QWidget *parent=nullptr) const
qSlicerIOOptionsWidget * fileOptionsWidget(const QString &fileDescription, QWidget *parent=nullptr) const
void initqSlicerBaseQTGUIPythonQtDecorators()