Version: 9.16.0
SalomePyQt.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23// File : SalomePyQt.h
24// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
25//
26#ifndef SALOME_PYQT_H
27#define SALOME_PYQT_H
28
29#include <Python.h>
30
31#include <QObject>
32#include <QString>
33#include <QColor>
34#include <QAction>
36#ifndef GUI_DISABLE_CORBA
38#endif
40#ifndef DISABLE_PLOT2DVIEWER
41#include <Plot2d_ViewFrame.h>
42#endif
43
45class QMenuBar;
46class QMenu;
47class QWidget;
48class QAction;
49class QTreeView;
50class QtxActionGroup;
51#ifndef DISABLE_PLOT2DVIEWER
52class Plot2d_Curve;
53#endif
54
55#if defined(_WIN32) && defined(__SALOME_USE_PYSIDE__)
56 #ifdef SalomePyQt_EXPORTS
57 #define SalomePyQt_EXPORT __declspec(dllexport)
58 #else
59 #define SalomePyQt_EXPORT __declspec(dllimport)
60 #endif
61#else
62 #define SalomePyQt_EXPORT
63#endif
64
66{
67 Q_OBJECT
68
69public:
71 static SALOME_Selection* GetSelection( LightApp_Application* );
72
73 void Clear();
74 void ClearIObjects();
75 void ClearFilters();
76
77signals:
79
80private slots:
81 void onSelMgrDestroyed();
82
83private:
86};
87
89 File = 1,
90 View = 2,
91 Edit = 3,
93 Tools = 5,
94 Window = 6,
95 Help = 7
96};
97
98enum {
103#ifndef GUI_DISABLE_CORBA
106#else
108#endif
110
111enum {
133};
134
136{
137 Q_OBJECT
138
139public:
140 explicit UserDefinedContent();
141
142 virtual void store();
143 virtual void retrieve();
144};
145
149 Vertical = 1
151
153enum Action {
156 SplitAt = 2
158
159#ifndef DISABLE_PLOT2DVIEWER
162{
171#endif
172
174{
179
180#ifndef DISABLE_PLOT2DVIEWER
181enum Axis {
186};
187#endif
188
190{
191public:
192 static QString getAppName();
193 static bool isLightApp();
194
195 static QWidget* getDesktop();
196 static QWidget* getMainFrame();
197 static QMenuBar* getMainMenuBar();
198 static QMenu* getPopupMenu( const MenuName );
199 static QMenu* getPopupMenu( const QString& );
200 static QTreeView* getObjectBrowser();
201 static void enableSelector();
202 static void disableSelector();
203 static SALOME_Selection* getSelection();
204 static QStringList getComponents();
205 static void setSelection( const QStringList& );
206 static const QString getActiveComponent();
207 static PyObject* getActivePythonModule();
208 static bool activateModule( const QString& );
209 static void registerModule( const QString& );
210 static void updateObjBrowser();
211
212 static void infoSetTitle( const QString& );
213 static int infoAddLabel( const QString&, const int = -1 );
214 static int infoAddLabel( const QString&, Qt::Alignment, const int = -1 );
215 static int infoAddAction( QAction*, const int = -1 );
216 static int infoAddGroup( const QString&, const int = -1 );
217
218 static void infoRemove( const int );
219 static void infoClear( const int = -1 );
220
221 static void infoSetVisible( const int, bool );
222 static void infoSetEnabled( const int, bool );
223
224 static void putInfo( const QString&, const int = 0 );
225 static int showNotification( const QString&, const QString&, const int = -1 );
226 static void hideNotification( const QString& );
227 static void hideNotification( const int );
228
229 static bool isModified();
230 static void setModified( bool );
231
232 static QString getFileName ( QWidget*, const QString&, const QStringList&, const QString&, bool );
233 static QStringList getOpenFileNames ( QWidget*, const QString&, const QStringList&, const QString& );
234 static QString getExistingDirectory( QWidget*, const QString&, const QString& );
235
236 static void createRoot();
237 static QString createObject( const QString& parent = QString() );
238 static QString createObject( const QString&, const QString&, const QString&, const QString& = QString() );
239
240 static void removeObject( const QString&);
241 static void removeChildren( const QString& = QString() );
242 static QStringList getChildren( const QString& = QString(), const bool = false );
243 static void setName( const QString&, const QString& );
244 static void setIcon( const QString&, const QString& );
245 static void setToolTip( const QString&, const QString& );
246 static QString getName( const QString& );
247 static QString getToolTip( const QString& );
248
249 static void setVisibilityState( const QString&, VisibilityState );
250 static VisibilityState getVisibilityState( const QString& );
251
252 static void setObjectPosition( const QString&, int );
253 static int getObjectPosition( const QString& );
254
255
256 static void setColor( const QString&, const QColor& );
257 static QColor getColor( const QString& );
258
259 static void setReference( const QString&, const QString& );
260 static QString getReference( const QString& );
261
262 static QIcon loadIcon( const QString&, const QString& );
263
264 static void helpContext( const QString&, const QString& );
265
266 static bool dumpView( const QString&, const int = 0 );
267
268 static int defaultMenuGroup();
269
270 static int createTool( const QString&, const QString& = QString() );
271 static int createTool( const int, const int, const int = -1 );
272 static int createTool( const int, const QString&, const int = -1 );
273 static int createTool( QAction*, const int, const int = -1, const int = -1 );
274 static int createTool( QAction*, const QString&, const int = -1, const int = -1 );
275 static void clearTool( const QString& );
276
277 static int createMenu( const QString&, const int = -1,
278 const int = -1, const int = -1, const int = -1 );
279 static int createMenu( const QString&, const QString& = QString(),
280 const int = -1, const int = -1, const int = -1 );
281 static int createMenu( const int, const int = -1,
282 const int = -1, const int = -1 );
283 static int createMenu( const int, const QString& = QString(),
284 const int = -1, const int = -1 );
285 static int createMenu( QAction*, const int, const int = -1,
286 const int = -1, const int = -1 );
287 static int createMenu( QAction*, const QString&, const int = -1,
288 const int = -1, const int = -1 );
289
290 static QAction* createSeparator();
291
292 static QAction* createAction( const int, const QString&,
293 const QString& = QString(), const QString& = QString(),
294 const QString& = QString(), const int = 0, const bool = false );
295
296 static QtxActionGroup* createActionGroup( const int, const bool = true );
297
298 static QAction* action( const int );
299 static int actionId( const QAction* );
300
301 static QString constant ( const QString& );
302 static void setConstant ( const QString&, const QString& );
303 static void addSetting ( const QString&, const QString&, const double );
304 static void addSetting ( const QString&, const QString&, const int );
305 static void addSetting ( const QString&, const QString&, const bool, const int );
306 static void addSetting ( const QString&, const QString&, const QString& );
307 static void addSetting ( const QString&, const QString&, const QColor& );
308 static void addSetting ( const QString&, const QString&, const QByteArray& );
309 static void addSetting ( const QString&, const QString&, const QFont& );
310 static int integerSetting( const QString&, const QString&, const int = 0 );
311 static double doubleSetting ( const QString&, const QString&, const double = 0 );
312 static bool boolSetting ( const QString&, const QString&, const bool = 0 );
313 static QString stringSetting ( const QString&, const QString&, const QString& = QString(""), const bool = true );
314 static QColor colorSetting ( const QString&, const QString&, const QColor& = QColor() );
315 static QByteArray byteArraySetting( const QString&, const QString&, const QByteArray& = QByteArray() );
316 static QFont fontSetting( const QString&, const QString&, const QFont& = QFont() );
317 static void removeSetting ( const QString&, const QString& );
318 static bool hasSetting ( const QString&, const QString& );
319 static QStringList parameters ( const QString& );
320 static QStringList parameters ( const QStringList& );
321
322 static int addGlobalPreference( const QString& );
323 static int addPreference( const QString& );
324 static int addPreference( const QString&,
325 const int, const int = PT_Auto,
326 const QString& = QString(),
327 const QString& = QString() );
328 static QVariant preferenceProperty( const int, const QString& );
329 static void setPreferenceProperty( const int, const QString&, const QVariant& );
330 static void setPreferencePropertyWg( const int, const QString&, UserDefinedContent* );
331 static void addPreferenceProperty( const int, const QString&, const int, const QVariant& );
332
333 static void message( const QString&, bool = true );
334 static void clearMessages();
335
336 static QList<int> getViews();
337 static int getActiveView();
338 static QString getViewType( const int );
339 static bool setViewTitle( const int, const QString& );
340 static QString getViewTitle( const int );
341 static bool setViewSize( const int, const int, const int = 0 );
342 static bool setViewRotationPoint( const double, const double, const double, const int = 0 );
343 static QList<int> findViews( const QString& );
344 static bool activateView( const int );
345 static bool activateViewManagerAndView( const int );
346 static QWidget* getViewWidget( const int );
347 static int createView( const QString&, bool visible = true, const int width = 0, const int height = 0, bool detached = false );
348 static int createView( const QString&, QWidget* );
349 static bool closeView( const int );
350 static int cloneView( const int );
351 static void setViewVisible( const int id, bool visible = true );
352 static bool isViewVisible( const int );
353 static void setViewClosable( const int, const bool );
354 static bool isViewClosable( const int );
355
356 static bool groupAllViews();
357 static bool splitView( const int, const Orientation, const Action );
358 static bool moveView( const int, const int, const bool );
359 static QList<int> neighbourViews( const int );
360
361#ifndef DISABLE_PLOT2DVIEWER
362 static void displayCurve(const int, Plot2d_Curve*);
363 static void eraseCurve(const int, Plot2d_Curve*);
364 static void eraseCurve(Plot2d_Curve*);
365 static void updateCurves( const int );
366 static QString getPlot2dTitle(const int, ObjectType = MainTitle);
367 static void setPlot2dTitle(const int, const QString&, ObjectType = MainTitle, bool = true);
368 static QList<double> getPlot2dFitRangeByCurves(const int);
369 static QList<double> getPlot2dFitRangeCurrent(const int);
370 static void setPlot2dFitRange(const int, const double XMin, const double XMax, const double YMin, const double YMax);
371#endif
372
373// static void initializeParaViewGUI();
374 static void processEvents();
375
376 // the following methods are obsolete
377 static void addStringSetting( const QString&, const QString&, bool = true );
378 static void addIntSetting ( const QString&, const int, bool = true );
379 static void addBoolSetting ( const QString&, const bool, bool = true );
380 static void addDoubleSetting( const QString&, const double, bool = true );
381 static void removeSettings ( const QString& );
382 static QString getSetting ( const QString& );
383
384 static void removeChild( const QString& = QString() );
385
386 static void startPyLog(const QString&);
387 static void stopPyLog();
388
389 static void logUserEvent( const QString& );
390 static void logAction( QAction*, const QString& = QString() );
391 static void setActionLoggingEnabled( bool );
392};
393
394#endif // SALOME_PYQT_H
ObjectType
Type of titles in Plot3d View.
Definition: SalomePyQt.h:162
@ YAxis
Definition: SalomePyQt.h:168
@ YTitle
Definition: SalomePyQt.h:165
@ Y2Title
Definition: SalomePyQt.h:166
@ XTitle
Definition: SalomePyQt.h:164
@ Y2Axis
Definition: SalomePyQt.h:169
@ XAxis
Definition: SalomePyQt.h:167
@ MainTitle
Definition: SalomePyQt.h:163
Orientation
Orientation.
Definition: SalomePyQt.h:147
@ Vertical
Vertical orientation.
Definition: SalomePyQt.h:149
@ Horizontal
Horizontal orientation.
Definition: SalomePyQt.h:148
#define SalomePyQt_EXPORT
Definition: SalomePyQt.h:62
Action
Action of splitting corresponding to QtxWorkstack::SplitType enumeration.
Definition: SalomePyQt.h:153
@ SplitAt
the view area is splitted in such a way, that specified view and all views which follow it,...
Definition: SalomePyQt.h:156
@ MoveWidget
move specified widget to the new area, other views stay in the previous area
Definition: SalomePyQt.h:154
@ LeaveWidget
specified widget stays in the old area, all other views are moved to the new area
Definition: SalomePyQt.h:155
MenuName
Definition: SalomePyQt.h:88
@ File
Definition: SalomePyQt.h:89
@ Help
Definition: SalomePyQt.h:95
@ View
Definition: SalomePyQt.h:90
@ Preferences
Definition: SalomePyQt.h:92
@ Tools
Definition: SalomePyQt.h:93
@ Edit
Definition: SalomePyQt.h:91
@ Window
Definition: SalomePyQt.h:94
VisibilityState
Definition: SalomePyQt.h:174
@ UnpresentableState
Unpresentable object.
Definition: SalomePyQt.h:177
@ ShownState
Object is shown in viewer.
Definition: SalomePyQt.h:175
@ HiddenState
Object is hidden in viewer.
Definition: SalomePyQt.h:176
Axis
Definition: SalomePyQt.h:181
@ xTop
Definition: SalomePyQt.h:185
@ xBottom
Definition: SalomePyQt.h:184
@ yRight
Definition: SalomePyQt.h:183
@ yLeft
Definition: SalomePyQt.h:182
@ WT_ObjectBrowser
Definition: SalomePyQt.h:99
@ WT_User
Definition: SalomePyQt.h:105
@ WT_InfoPanel
Definition: SalomePyQt.h:102
@ WT_LogWindow
Definition: SalomePyQt.h:101
@ WT_PyConsole
Definition: SalomePyQt.h:100
@ WT_NoteBook
Definition: SalomePyQt.h:104
@ PT_DirList
Definition: SalomePyQt.h:126
@ PT_Tab
Definition: SalomePyQt.h:123
@ PT_Auto
Definition: SalomePyQt.h:112
@ PT_UserDefined
Definition: SalomePyQt.h:132
@ PT_Frame
Definition: SalomePyQt.h:124
@ PT_Color
Definition: SalomePyQt.h:115
@ PT_Space
Definition: SalomePyQt.h:113
@ PT_Double
Definition: SalomePyQt.h:120
@ PT_String
Definition: SalomePyQt.h:116
@ PT_File
Definition: SalomePyQt.h:127
@ PT_DblSpin
Definition: SalomePyQt.h:118
@ PT_Slider
Definition: SalomePyQt.h:128
@ PT_Selector
Definition: SalomePyQt.h:117
@ PT_Font
Definition: SalomePyQt.h:125
@ PT_Background
Definition: SalomePyQt.h:131
@ PT_Bool
Definition: SalomePyQt.h:114
@ PT_IntSpin
Definition: SalomePyQt.h:119
@ PT_BiColor
Definition: SalomePyQt.h:130
@ PT_Integer
Definition: SalomePyQt.h:121
@ PT_GroupBox
Definition: SalomePyQt.h:122
@ PT_ShortcutTree
Definition: SalomePyQt.h:129
Definition: LightApp_Application.h:77
@ WT_InfoPanel
Definition: LightApp_Application.h:82
@ WT_User
Definition: LightApp_Application.h:87
@ WT_PyConsole
Definition: LightApp_Application.h:84
@ WT_ObjectBrowser
Definition: LightApp_Application.h:81
@ WT_LogWindow
Definition: LightApp_Application.h:86
Definition: LightApp_SelectionMgr.h:53
Definition: Plot2d_Curve.h:34
@ Y2Title
Definition: Plot2d_ViewFrame.h:81
@ XTitle
Definition: Plot2d_ViewFrame.h:81
@ MainTitle
Definition: Plot2d_ViewFrame.h:81
@ Y2Axis
Definition: Plot2d_ViewFrame.h:81
@ XAxis
Definition: Plot2d_ViewFrame.h:81
@ YAxis
Definition: Plot2d_ViewFrame.h:81
@ YTitle
Definition: Plot2d_ViewFrame.h:81
For more information see QT documentation.
The QtxActionGroup class groups actions together.
Definition: QtxActionGroup.h:36
The class represents selection which can be used in Python.
Definition: SalomePyQt.h:66
LightApp_SelectionMgr * mySelMgr
Definition: SalomePyQt.h:84
void currentSelectionChanged()
@ ShortcutTree
Definition: SUIT_PreferenceMgr.h:41
@ Double
Definition: SUIT_PreferenceMgr.h:39
@ Space
Definition: SUIT_PreferenceMgr.h:38
@ Frame
Definition: SUIT_PreferenceMgr.h:40
@ Color
Definition: SUIT_PreferenceMgr.h:38
@ Bool
Definition: SUIT_PreferenceMgr.h:38
@ BiColor
Definition: SUIT_PreferenceMgr.h:41
@ Auto
Definition: SUIT_PreferenceMgr.h:38
@ DirList
Definition: SUIT_PreferenceMgr.h:40
@ Selector
Definition: SUIT_PreferenceMgr.h:38
@ String
Definition: SUIT_PreferenceMgr.h:38
@ Integer
Definition: SUIT_PreferenceMgr.h:39
@ Slider
Definition: SUIT_PreferenceMgr.h:41
@ File
Definition: SUIT_PreferenceMgr.h:40
@ Font
Definition: SUIT_PreferenceMgr.h:40
@ IntSpin
Definition: SUIT_PreferenceMgr.h:39
@ Background
Definition: SUIT_PreferenceMgr.h:41
@ DblSpin
Definition: SUIT_PreferenceMgr.h:39
@ UserDefined
Definition: SUIT_PreferenceMgr.h:42
@ GroupBox
Definition: SUIT_PreferenceMgr.h:40
@ Tab
Definition: SUIT_PreferenceMgr.h:40
@ WT_User
Definition: SalomeApp_Application.h:78
@ WT_NoteBook
Definition: SalomeApp_Application.h:77
The class provides utility functions which can be used in the Python to operate with the SALOME GUI.
Definition: SalomePyQt.h:190
The class represents base class for user defined widget that can be inserted to the Preferences dialo...
Definition: SalomePyQt.h:136