| OpendTect 8.0

Loading...
Searching...
No Matches
Classes
uiBase

Basic User Interface. More...

## Classes
class | uiCurvedItem::ArcSpec
class | CmdRecStopper
class | FlareHelpProvider
class | i_LayoutItem
| Wrapper around QLayoutItem class. Stores some dGB specific layout info. More...
class | i_uiLayoutItem
class | ODQtObjectSet< OD, QT >
class | ReleaseNotesProvider
class | uiTable::SelectionRange
class | uiDialExtra::Setup
class | uiDialog::Setup
| description of properties of dialog. More...
class | uiColTabItem::Setup
class | uiColorInput::Setup
class | uiListBox::Setup
class | uiMainWin::Setup
class | uiSlider::Setup
class | uiTable::Setup
class | uiTreeViewItem::Setup
class | SimpleHelpProvider
| A simple HelpProvider that can be extended to create a HelpProvider for third party plug-ins. You need a urlbase string which can refer to a web URL (starting with "https://" or "http://") or a local file path (starting with "file:///"). For linking the individual HelpKeys, you can either add links for specific keys using the function: More...
class | uiCurvedItem::SplineSpec
class | uiAction
class | uiActionContainer
class | uiActionSeparString
class | uiAdvancedTextItem
class | uiArrowItem
class | uiBaseObject
class | uiBody
class | uiBodyImpl< C, T >
| Simple delegating implementation of uiBody. More...
class | uiBorder
class | uiButton
| is the base class for all buttons. More...
class | uiButtonGroup
class | uiButtonMessenger
| Button Abstract Base class. More...
class | uiCalendar
class | uiCentralWidgetBody
class | uiCheckBox
class | uiCircleItem
class | uiClipboard
class | uiColorInput
| small element for color selection. Has no text label. More...
class | uiColTabItem
class | uiComboBox
| Combo box. More...
class | uiConstraint
class | uiCursorManager
class | uiCurvedItem
class | uiDateSel
class | uiDesktopServices
class | uiDial
class | uiDialExtra
class | uiDialog
class | uiDockWin
class | uiDynamicImageItem
class | uiEllipseItem
class | uiEventFilter
| is a class that is able to recieve events from Qt and trigger an OD-style notification/callback. More...
class | uiExtraIntKeyDesc
class | uiFileDialog
| Dialog to get a file or directory name from user. More...
class | uiFileSelector
class | uiFileSelectorSetup
| Setup for any file or directory selection process. More...
class | uiFileSelTool
| Selects file or directory in some form of UI. 1-1 coupled with a certain SystemAccess / protocol. More...
class | uiFileSelToolProvider
| provides file selector for a File::SystemAccess type More...
class | uiFloatValidator
class | uiFont
class | uiFontList
class | uiGraphicsItem
class | uiGraphicsItemGroup
class | uiGraphicsItemSet
class | uiGraphicsObjectScene
class | uiGraphicsScene
class | uiGraphicsSceneChanger
class | uiGraphicsViewBase
class | uiGraphicsViewMask
class | uiGroup
class | uiGroupObj
class | uiIcon
| Manager for icons of different sizes. More...
class | uiIntValidator
class | uiKeyDesc
class | uiLabel
class | uiLabeledComboBox
class | uiLabeledListBox
| uiLabeledListBox. Deprecated. Don't use in new code More...
class | uiLabeledSpinBox
class | uiLineEdit
class | uiLineItem
class | uiListBox
class | uiListBoxObj
| List Box. More...
class | uiMain
class | uiMainWin
| User interface main window. More...
class | uiMarkerItem
class | uiMdiArea
class | uiMdiAreaWindow
class | uiMenu
class | uiMenuBar
class | uiMouseEventBlockerByGestures
class | uiMsg
class | uiMsgMainWinSetter
| Sets the uiMSG's main window temporary during the scope of the object. More...
class | uiMultiColorPolyLineItem
class | uiObjBodyImpl< C, T >
| Default (Template) implementation of uiObjectBody. More...
class | uiObject
| The base class for most UI elements. More...
class | uiObjectBody
class | uiObjectItem
class | uiObjectStack
class | uiParent
class | uiParentBody
class | uiPixmap
| Off-screen pixel-based paint device. More...
class | uiPixmapItem
class | uiPointItem
class | uiPolygonItem
class | uiPolyLineItem
class | uiProgressBar
class | uiPushButton
| Push button. By default, assumes immediate action, not a dialog when pushed. The button text will in that case get an added " ..." to the text. In principle, it could also get another appearance. More...
class | uiRadioButton
class | uiRect
class | uiRectItem
class | uiRGBArray
class | uiRGBImageLoader
class | uiRubberBand
class | uiScrollArea
class | uiSeparator
class | uiShortcutsList
class | uiShortcutsMgr
class | uiSize
class | uiSlider
class | uiSliderObj
class | uiSpinBox
class | uiSplashScreen
class | uiSplitter
| Provides a splitter object. More...
class | uiStatusBar
class | uiSystemTrayIcon
class | uiTab
class | uiTabBar
| TabBar widget only. Normally you'd want to use the uiTabStack class. More...
class | uiTable
class | uiTableView
class | uiTabStack
class | uiTextBrowser
class | uiTextEdit
class | uiTextEditBase
class | uiTextItem
class | uiTextValidator
class | uiToolBar
class | uiToolButton
class | uiToolButtonSetup
class | uiTrayDialog
class | uiTreeView
class | uiTreeViewItem
class | uiTreeViewItemIterator
class | uiUserShowWait
| tells user something is happening. More...
class | uiVirtualKeyboard
class | uiWellSymbolItem
class | VideoProvider
| HelpProvider for videos. More...
class | WebsiteHelp

## Detailed Description

Basic User Interface.

# Introduction Basic User Interface

This module is a set of cooperating classes that enable creating User Interfaces. This layer on top of the already wonderful Qt package was created because of the following problems:

- Qt provides an enormous set of tools, of which we need only a fraction
- On the other hand, Qt does not offer things like:
  - Selection of widget on basis of data characteristics
  - Automated 'black-box' layouting (enabling full grouping into new classes)
  - Integration with our data types
  - Generalised Callback/Notifier support (instead of Qt's Signal/Slot)
- If we use Qt directly, no isolation is present.

Therefore, as with most external libraries, we chose to make a new layer to combine the power of Qt with the flexibility of more generalised design principles.

# Usage

The basic principles are:

- Objects are linked to each other in the window by attaching. This determines the layout of the window.
- Events are notified by specifically asking a Notifier in the class.
- All objects can be grouped; every group must be prepared to be attached to other UI elements; this is done by assigning one of the objects as being the 'align object'.
- 'Simple' data input should preferably be done through the uiGenInput class (see uiTools module).

The Qt window painting facilities are only used for quick sketching, the code generation capacity is not used. Example:

`IntInpSpec spec( lastnrclasses );
spec.setLimits( Interval<int>( 0, 100 ) );
nrclassfld = new uiGenInput( this, "Number of classes", spec );
FloatInpSpec inpspec( lastratiotst*100 );
inpspec.setLimits( Interval<float>( 0, 100 ) );
perctstfld = new uiGenInput( this, "Percentage used for test set", inpspec );
perctstfld->attach( alignedBelow, nrclassfld );
defbut = new uiPushButton( this, "Default" );
defbut->activated.notify( mCB(this,ThisClass,setPercToDefault) );
defbut->attach( rightOf, perctstfld );`

Note that all objects could have been made:

- Conditional (only if a condition is met)
- Iterative (any number that may be necessary)
- As part of a group (e.g. to later treat as one uiObject)
- From a Factory (for example an object transforming a string into a uiObject).

# Design

In the uiBase directory, you'll find classes that directly communicate with Qt to implement (parts of) this strategy. To keep the header files uncoupled from the Qt header files, there is a mechanism where the 'ui' class has a 'ui'-Body class that is a subclass of a Qt class.

Almost every 'visible' object is a uiObject. Besides the different subclasses, there is also the uiGroup which is just another uiObject. The windows holding these are (like uiObjects) uiBaseObject's. The uiMainWin is a subclass, and the ubiquitous uiDialog.

Generated at
for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2025