populse_mia.user_interface.main_window¶
Module to define main window appearance, functions and settings.
Initialize the software appearance and defines interactions with the user.
- Contains:
- Class:
MainWindow
Classes
|
Initialize software appearance and define interactions with the user. |
- class populse_mia.user_interface.main_window.datetime(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]])¶
Bases:
dateThe year, month and day arguments are required. tzinfo may be None, or an instance of a tzinfo subclass. The remaining arguments may be ints.
- astimezone()¶
tz -> convert to local time in new timezone tz
- combine()¶
date, time -> datetime with same date and time fields
- ctime()¶
Return ctime() style string.
- date()¶
Return date object with same year, month and day.
- dst()¶
Return self.tzinfo.dst(self).
- fold¶
- fromisoformat()¶
string -> datetime from a string in most ISO 8601 formats
- fromtimestamp()¶
timestamp[, tz] -> tz’s local time from POSIX timestamp.
- hour¶
- isoformat()¶
[sep] -> string in ISO 8601 format, YYYY-MM-DDT[HH[:MM[:SS[.mmm[uuu]]]]][+HH:MM]. sep is used to separate the year from the time, and defaults to ‘T’. The optional argument timespec specifies the number of additional terms of the time to include. Valid options are ‘auto’, ‘hours’, ‘minutes’, ‘seconds’, ‘milliseconds’ and ‘microseconds’.
- max = datetime.datetime(9999, 12, 31, 23, 59, 59, 999999)¶
- microsecond¶
- min = datetime.datetime(1, 1, 1, 0, 0)¶
- minute¶
- now()¶
Returns new datetime object representing current time local to tz.
- tz
Timezone object.
If no tz is specified, uses local timezone.
- replace()¶
Return datetime with new specified fields.
- resolution = datetime.timedelta(microseconds=1)¶
- second¶
- strptime()¶
string, format -> new datetime parsed from a string (like time.strptime()).
- time()¶
Return time object with same time but with tzinfo=None.
- timestamp()¶
Return POSIX timestamp as float.
- timetuple()¶
Return time tuple, compatible with time.localtime().
- timetz()¶
Return time object with same time and tzinfo.
- tzinfo¶
- tzname()¶
Return self.tzinfo.tzname(self).
- utcfromtimestamp()¶
Construct a naive UTC datetime from a POSIX timestamp.
- utcnow()¶
Return a new datetime representing UTC day and time.
- utcoffset()¶
Return self.tzinfo.utcoffset(self).
- utctimetuple()¶
Return UTC time tuple, compatible with time.localtime().
- populse_mia.user_interface.main_window.expanduser(path)[source]¶
Expand ~ and ~user constructions. If user or $HOME is unknown, do nothing.
- class populse_mia.user_interface.main_window.QCoreApplication(argv: List[str])¶
Bases:
QObject- aboutToQuit¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- flush()¶
- instance() QCoreApplication | None¶
- postEvent(receiver: QObject | None, event: QEvent | None, priority: int = Qt.EventPriority.NormalEventPriority)¶
- processEvents(flags: QEventLoop.ProcessEventsFlags | QEventLoop.ProcessEventsFlag = QEventLoop.ProcessEventsFlag.AllEvents)¶
- processEvents(flags: QEventLoop.ProcessEventsFlags | QEventLoop.ProcessEventsFlag, maxtime: int) None
- quit()¶
- setAttribute(attribute: Qt.ApplicationAttribute, on: bool = True)¶
- testAttribute(attribute: Qt.ApplicationAttribute) bool¶
- class populse_mia.user_interface.main_window.Qt¶
Bases:
simplewrapper- AA_CompressHighFrequencyEvents = 25¶
- AA_CompressTabletEvents = 29¶
- AA_DisableHighDpiScaling = 21¶
- AA_DisableNativeVirtualKeyboard = 9¶
- AA_DisableSessionManager = 31¶
- AA_DisableShaderDiskCache = 27¶
- AA_DisableWindowContextHelpButton = 30¶
- AA_DontCheckOpenGLContextThreadAffinity = 26¶
- AA_DontCreateNativeWidgetSiblings = 4¶
- AA_DontShowIconsInMenus = 2¶
- AA_DontShowShortcutsInContextMenus = 28¶
- AA_DontUseNativeDialogs = 23¶
- AA_DontUseNativeMenuBar = 6¶
- AA_EnableHighDpiScaling = 20¶
- AA_ForceRasterWidgets = 14¶
- AA_ImmediateWidgetCreation = 0¶
- AA_MSWindowsUseDirect3DByDefault = 1¶
- AA_MacDontSwapCtrlAndMeta = 7¶
- AA_MacPluginApplication = 5¶
- AA_NativeWindows = 3¶
- AA_PluginApplication = 5¶
- AA_SetPalette = 19¶
- AA_SynthesizeMouseForUnhandledTabletEvents = 24¶
- AA_SynthesizeMouseForUnhandledTouchEvents = 12¶
- AA_SynthesizeTouchForUnhandledMouseEvents = 11¶
- AA_Use96Dpi = 8¶
- AA_UseDesktopOpenGL = 15¶
- AA_UseHighDpiPixmaps = 13¶
- AA_UseOpenGLES = 16¶
- AA_UseSoftwareOpenGL = 17¶
- AA_UseStyleSheetPropagationInWidgetStyles = 22¶
- AA_X11InitThreads = 10¶
- ALT = 134217728¶
- AbsoluteSize = 0¶
- AccessibleDescriptionRole = 12¶
- AccessibleTextRole = 11¶
- ActionMask = 255¶
- ActionsContextMenu = 2¶
- ActiveWindowFocusReason = 3¶
- AddToSelection = 1¶
- AlignAbsolute = 16¶
- AlignBaseline = 256¶
- AlignBottom = 64¶
- AlignCenter = 132¶
- AlignHCenter = 4¶
- AlignHorizontal_Mask = 31¶
- AlignJustify = 8¶
- AlignLeading = 1¶
- AlignLeft = 1¶
- AlignRight = 2¶
- AlignTop = 32¶
- AlignTrailing = 2¶
- AlignVCenter = 128¶
- AlignVertical_Mask = 480¶
- class Alignment¶
- class Alignment(f: Qt.Alignment | Qt.AlignmentFlag)
- class Alignment(a0: Qt.Alignment)
Bases:
simplewrapper
- AllButtons = 134217727¶
- AllDockWidgetAreas = 15¶
- AllToolBarAreas = 15¶
- AltModifier = 134217728¶
- AnchorBottom = 5¶
- AnchorHorizontalCenter = 1¶
- AnchorLeft = 0¶
- AnchorRight = 2¶
- AnchorTop = 3¶
- AnchorVerticalCenter = 4¶
- ApplicationActive = 4¶
- ApplicationHidden = 1¶
- ApplicationInactive = 2¶
- ApplicationModal = 2¶
- ApplicationShortcut = 2¶
- class ApplicationStates¶
- class ApplicationStates(f: Qt.ApplicationStates | Qt.ApplicationState)
- class ApplicationStates(a0: Qt.ApplicationStates)
Bases:
simplewrapper
- ApplicationSuspended = 0¶
- ArrowCursor = 0¶
- AscendingOrder = 0¶
- AutoColor = 0¶
- AutoConnection = 0¶
- AutoDither = 0¶
- AutoText = 2¶
- AvoidDither = 128¶
- BDiagPattern = 12¶
- BackButton = 8¶
- BackgroundColorRole = 8¶
- BackgroundRole = 8¶
- BacktabFocusReason = 2¶
- BeginNativeGesture = 0¶
- BevelJoin = 64¶
- BitmapCursor = 24¶
- BlankCursor = 10¶
- BlockingQueuedConnection = 3¶
- BottomDockWidgetArea = 8¶
- BottomEdge = 8¶
- BottomLeftCorner = 2¶
- BottomLeftSection = 8¶
- BottomRightCorner = 3¶
- BottomRightSection = 6¶
- BottomSection = 7¶
- BottomToolBarArea = 8¶
- BusyCursor = 16¶
- BypassGraphicsProxyWidget = 536870912¶
- BypassWindowManagerHint = 1024¶
- CTRL = 67108864¶
- CaseInsensitive = 0¶
- CaseSensitive = 1¶
- Ceil = 2¶
- CheckStateRole = 10¶
- Checked = 2¶
- ChecksumIso3309 = 0¶
- ChecksumItuV41 = 1¶
- ClickFocus = 2¶
- ClosedHandCursor = 18¶
- CoarseTimer = 1¶
- ColorOnly = 3¶
- ConicalGradientPattern = 17¶
- ContainsItemBoundingRect = 2¶
- ContainsItemShape = 0¶
- ControlModifier = 67108864¶
- CopyAction = 1¶
- CoverWindow = 65¶
- CrossCursor = 2¶
- CrossPattern = 11¶
- CustomContextMenu = 3¶
- CustomCursor = 25¶
- CustomDashLine = 6¶
- CustomGesture = 256¶
- CustomizeWindowHint = 33554432¶
- DashDotDotLine = 5¶
- DashDotLine = 4¶
- DashLine = 2¶
- DecorationRole = 1¶
- DefaultContextMenu = 1¶
- DefaultLocaleLongDate = 7¶
- DefaultLocaleShortDate = 6¶
- Dense1Pattern = 2¶
- Dense2Pattern = 3¶
- Dense3Pattern = 4¶
- Dense4Pattern = 5¶
- Dense5Pattern = 6¶
- Dense6Pattern = 7¶
- Dense7Pattern = 8¶
- DescendingOrder = 1¶
- Desktop = 17¶
- DeviceCoordinates = 0¶
- DiagCrossPattern = 14¶
- Dialog = 3¶
- DiffuseAlphaDither = 8¶
- DiffuseDither = 0¶
- DirectConnection = 1¶
- DisplayRole = 0¶
- DockWidgetArea_Mask = 15¶
- class DockWidgetAreas¶
- class DockWidgetAreas(f: Qt.DockWidgetAreas | Qt.DockWidgetArea)
- class DockWidgetAreas(a0: Qt.DockWidgetAreas)
Bases:
simplewrapper
- DontStartGestureOnChildren = 1¶
- DotLine = 3¶
- DownArrow = 2¶
- DragCopyCursor = 19¶
- DragLinkCursor = 21¶
- DragMoveCursor = 20¶
- Drawer = 7¶
- class DropActions¶
- class DropActions(f: Qt.DropActions | Qt.DropAction)
- class DropActions(a0: Qt.DropActions)
Bases:
simplewrapper
- EditRole = 2¶
- ElideLeft = 0¶
- ElideMiddle = 2¶
- ElideNone = 3¶
- ElideRight = 1¶
- EndNativeGesture = 1¶
- EnterKeyDefault = 0¶
- EnterKeyDone = 2¶
- EnterKeyGo = 3¶
- EnterKeyNext = 6¶
- EnterKeyPrevious = 7¶
- EnterKeyReturn = 1¶
- EnterKeySearch = 5¶
- EnterKeySend = 4¶
- ExactHit = 0¶
- ExtraButton1 = 8¶
- ExtraButton10 = 4096¶
- ExtraButton11 = 8192¶
- ExtraButton12 = 16384¶
- ExtraButton13 = 32768¶
- ExtraButton14 = 65536¶
- ExtraButton15 = 131072¶
- ExtraButton16 = 262144¶
- ExtraButton17 = 524288¶
- ExtraButton18 = 1048576¶
- ExtraButton19 = 2097152¶
- ExtraButton2 = 16¶
- ExtraButton20 = 4194304¶
- ExtraButton21 = 8388608¶
- ExtraButton22 = 16777216¶
- ExtraButton23 = 33554432¶
- ExtraButton24 = 67108864¶
- ExtraButton3 = 32¶
- ExtraButton4 = 64¶
- ExtraButton5 = 128¶
- ExtraButton6 = 256¶
- ExtraButton7 = 512¶
- ExtraButton8 = 1024¶
- ExtraButton9 = 2048¶
- FDiagPattern = 13¶
- FastTransformation = 0¶
- class FindChildOptions¶
- class FindChildOptions(f: Qt.FindChildOptions | Qt.FindChildOption)
- class FindChildOptions(a0: Qt.FindChildOptions)
Bases:
simplewrapper
- FindChildrenRecursively = 1¶
- FindDirectChildrenOnly = 0¶
- FlatCap = 0¶
- Floor = 3¶
- FontRole = 6¶
- ForbiddenCursor = 14¶
- ForegroundRole = 9¶
- ForeignWindow = 33¶
- ForwardButton = 16¶
- FramelessWindowHint = 2048¶
- Friday = 5¶
- FuzzyHit = 1¶
- GestureCanceled = 4¶
- GestureFinished = 3¶
- class GestureFlags¶
- class GestureFlags(f: Qt.GestureFlags | Qt.GestureFlag)
- class GestureFlags(a0: Qt.GestureFlags)
Bases:
simplewrapper
- GestureStarted = 1¶
- GestureUpdated = 2¶
- GroupSwitchModifier = 1073741824¶
- class HighDpiScaleFactorRoundingPolicy(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
IntEnum- Ceil = 2¶
- Floor = 3¶
- PassThrough = 5¶
- Round = 1¶
- RoundPreferFloor = 4¶
- HighDpiScaleFactorRoundingPolicys¶
alias of
HighDpiScaleFactorRoundingPolicy
- HighEventPriority = 1¶
- HorPattern = 9¶
- Horizontal = 1¶
- IBeamCursor = 4¶
- ISODate = 1¶
- ISODateWithMs = 9¶
- IgnoreAction = 0¶
- IgnoreAspectRatio = 0¶
- IgnoredGesturesPropagateToParent = 4¶
- ImAbsolutePosition = 1024¶
- ImAnchorPosition = 128¶
- ImAnchorRectangle = 16384¶
- ImCurrentSelection = 32¶
- ImCursorPosition = 8¶
- ImCursorRectangle = 2¶
- ImEnabled = 1¶
- ImEnterKeyType = 8192¶
- ImFont = 4¶
- ImHints = 256¶
- ImInputItemClipRectangle = 32768¶
- ImMaximumTextLength = 64¶
- ImMicroFocus = 2¶
- ImPlatformData = -2147483648¶
- ImPreferredLanguage = 512¶
- ImQueryAll = -1¶
- ImQueryInput = 16570¶
- ImSurroundingText = 16¶
- ImTextAfterCursor = 4096¶
- ImTextBeforeCursor = 2048¶
- class ImageConversionFlags¶
- class ImageConversionFlags(f: Qt.ImageConversionFlags | Qt.ImageConversionFlag)
- class ImageConversionFlags(a0: Qt.ImageConversionFlags)
Bases:
simplewrapper
- ImhDate = 128¶
- ImhDialableCharactersOnly = 1048576¶
- ImhDigitsOnly = 65536¶
- ImhEmailCharactersOnly = 2097152¶
- ImhExclusiveInputMask = -65536¶
- ImhFormattedNumbersOnly = 131072¶
- ImhHiddenText = 1¶
- ImhLatinOnly = 8388608¶
- ImhLowercaseOnly = 524288¶
- ImhMultiLine = 1024¶
- ImhNoAutoUppercase = 4¶
- ImhNoEditMenu = 2048¶
- ImhNoPredictiveText = 64¶
- ImhNoTextHandles = 4096¶
- ImhNone = 0¶
- ImhPreferLatin = 512¶
- ImhPreferLowercase = 32¶
- ImhPreferNumbers = 8¶
- ImhPreferUppercase = 16¶
- ImhSensitiveData = 2¶
- ImhTime = 256¶
- ImhUppercaseOnly = 262144¶
- ImhUrlCharactersOnly = 4194304¶
- InitialSortOrderRole = 14¶
- class InputMethodHints¶
- class InputMethodHints(f: Qt.InputMethodHints | Qt.InputMethodHint)
- class InputMethodHints(a0: Qt.InputMethodHints)
Bases:
simplewrapper
- class InputMethodQueries¶
- class InputMethodQueries(f: Qt.InputMethodQueries | Qt.InputMethodQuery)
- class InputMethodQueries(a0: Qt.InputMethodQueries)
Bases:
simplewrapper
- IntersectClip = 2¶
- IntersectsItemBoundingRect = 3¶
- IntersectsItemShape = 1¶
- InvertedLandscapeOrientation = 8¶
- InvertedPortraitOrientation = 4¶
- class ItemFlags¶
- class ItemFlags(f: Qt.ItemFlags | Qt.ItemFlag)
- class ItemFlags(a0: Qt.ItemFlags)
Bases:
simplewrapper
- ItemIsAutoTristate = 64¶
- ItemIsDragEnabled = 4¶
- ItemIsDropEnabled = 8¶
- ItemIsEditable = 2¶
- ItemIsEnabled = 32¶
- ItemIsSelectable = 1¶
- ItemIsTristate = 64¶
- ItemIsUserCheckable = 16¶
- ItemIsUserTristate = 256¶
- ItemNeverHasChildren = 128¶
- KeepAspectRatio = 1¶
- KeepAspectRatioByExpanding = 2¶
- Key_0 = 48¶
- Key_1 = 49¶
- Key_2 = 50¶
- Key_3 = 51¶
- Key_4 = 52¶
- Key_5 = 53¶
- Key_6 = 54¶
- Key_7 = 55¶
- Key_8 = 56¶
- Key_9 = 57¶
- Key_A = 65¶
- Key_AE = 198¶
- Key_Aacute = 193¶
- Key_Acircumflex = 194¶
- Key_AddFavorite = 16777408¶
- Key_Adiaeresis = 196¶
- Key_Agrave = 192¶
- Key_Alt = 16777251¶
- Key_AltGr = 16781571¶
- Key_Ampersand = 38¶
- Key_Any = 32¶
- Key_Apostrophe = 39¶
- Key_ApplicationLeft = 16777415¶
- Key_ApplicationRight = 16777416¶
- Key_Aring = 197¶
- Key_AsciiCircum = 94¶
- Key_AsciiTilde = 126¶
- Key_Asterisk = 42¶
- Key_At = 64¶
- Key_Atilde = 195¶
- Key_AudioCycleTrack = 16777478¶
- Key_AudioForward = 16777474¶
- Key_AudioRandomPlay = 16777476¶
- Key_AudioRepeat = 16777475¶
- Key_AudioRewind = 16777413¶
- Key_Away = 16777464¶
- Key_B = 66¶
- Key_Back = 16777313¶
- Key_BackForward = 16777414¶
- Key_Backslash = 92¶
- Key_Backspace = 16777219¶
- Key_Backtab = 16777218¶
- Key_Bar = 124¶
- Key_BassBoost = 16777331¶
- Key_BassDown = 16777333¶
- Key_BassUp = 16777332¶
- Key_Battery = 16777470¶
- Key_Blue = 16777495¶
- Key_Bluetooth = 16777471¶
- Key_Book = 16777417¶
- Key_BraceLeft = 123¶
- Key_BraceRight = 125¶
- Key_BracketLeft = 91¶
- Key_BracketRight = 93¶
- Key_BrightnessAdjust = 16777410¶
- Key_C = 67¶
- Key_CD = 16777418¶
- Key_Calculator = 16777419¶
- Key_Calendar = 16777444¶
- Key_Call = 17825796¶
- Key_Camera = 17825824¶
- Key_CameraFocus = 17825825¶
- Key_Cancel = 16908289¶
- Key_CapsLock = 16777252¶
- Key_Ccedilla = 199¶
- Key_ChannelDown = 16777497¶
- Key_ChannelUp = 16777496¶
- Key_Clear = 16777227¶
- Key_ClearGrab = 16777421¶
- Key_Close = 16777422¶
- Key_Codeinput = 16781623¶
- Key_Colon = 58¶
- Key_Comma = 44¶
- Key_Community = 16777412¶
- Key_Context1 = 17825792¶
- Key_Context2 = 17825793¶
- Key_Context3 = 17825794¶
- Key_Context4 = 17825795¶
- Key_ContrastAdjust = 16777485¶
- Key_Control = 16777249¶
- Key_Copy = 16777423¶
- Key_Cut = 16777424¶
- Key_D = 68¶
- Key_DOS = 16777426¶
- Key_Dead_A = 16781953¶
- Key_Dead_Abovecomma = 16781924¶
- Key_Dead_Abovedot = 16781910¶
- Key_Dead_Abovereversedcomma = 16781925¶
- Key_Dead_Abovering = 16781912¶
- Key_Dead_Aboveverticalline = 16781969¶
- Key_Dead_Acute = 16781905¶
- Key_Dead_Belowbreve = 16781931¶
- Key_Dead_Belowcircumflex = 16781929¶
- Key_Dead_Belowcomma = 16781934¶
- Key_Dead_Belowdiaeresis = 16781932¶
- Key_Dead_Belowdot = 16781920¶
- Key_Dead_Belowmacron = 16781928¶
- Key_Dead_Belowring = 16781927¶
- Key_Dead_Belowtilde = 16781930¶
- Key_Dead_Belowverticalline = 16781970¶
- Key_Dead_Breve = 16781909¶
- Key_Dead_Capital_Schwa = 16781963¶
- Key_Dead_Caron = 16781914¶
- Key_Dead_Cedilla = 16781915¶
- Key_Dead_Circumflex = 16781906¶
- Key_Dead_Currency = 16781935¶
- Key_Dead_Diaeresis = 16781911¶
- Key_Dead_Doubleacute = 16781913¶
- Key_Dead_Doublegrave = 16781926¶
- Key_Dead_E = 16781955¶
- Key_Dead_Grave = 16781904¶
- Key_Dead_Greek = 16781964¶
- Key_Dead_Hook = 16781921¶
- Key_Dead_Horn = 16781922¶
- Key_Dead_I = 16781957¶
- Key_Dead_Invertedbreve = 16781933¶
- Key_Dead_Iota = 16781917¶
- Key_Dead_Longsolidusoverlay = 16781971¶
- Key_Dead_Lowline = 16781968¶
- Key_Dead_Macron = 16781908¶
- Key_Dead_O = 16781959¶
- Key_Dead_Ogonek = 16781916¶
- Key_Dead_Semivoiced_Sound = 16781919¶
- Key_Dead_Small_Schwa = 16781962¶
- Key_Dead_Stroke = 16781923¶
- Key_Dead_Tilde = 16781907¶
- Key_Dead_U = 16781961¶
- Key_Dead_Voiced_Sound = 16781918¶
- Key_Dead_a = 16781952¶
- Key_Dead_e = 16781954¶
- Key_Dead_i = 16781956¶
- Key_Dead_o = 16781958¶
- Key_Dead_u = 16781960¶
- Key_Delete = 16777223¶
- Key_Direction_L = 16777305¶
- Key_Direction_R = 16777312¶
- Key_Display = 16777425¶
- Key_Documents = 16777427¶
- Key_Dollar = 36¶
- Key_Down = 16777237¶
- Key_E = 69¶
- Key_ETH = 208¶
- Key_Eacute = 201¶
- Key_Ecircumflex = 202¶
- Key_Ediaeresis = 203¶
- Key_Egrave = 200¶
- Key_Eisu_Shift = 16781615¶
- Key_Eisu_toggle = 16781616¶
- Key_Eject = 16777401¶
- Key_End = 16777233¶
- Key_Enter = 16777221¶
- Key_Equal = 61¶
- Key_Escape = 16777216¶
- Key_Excel = 16777428¶
- Key_Exclam = 33¶
- Key_Execute = 16908291¶
- Key_Exit = 16908298¶
- Key_Explorer = 16777429¶
- Key_F = 70¶
- Key_F1 = 16777264¶
- Key_F10 = 16777273¶
- Key_F11 = 16777274¶
- Key_F12 = 16777275¶
- Key_F13 = 16777276¶
- Key_F14 = 16777277¶
- Key_F15 = 16777278¶
- Key_F16 = 16777279¶
- Key_F17 = 16777280¶
- Key_F18 = 16777281¶
- Key_F19 = 16777282¶
- Key_F2 = 16777265¶
- Key_F20 = 16777283¶
- Key_F21 = 16777284¶
- Key_F22 = 16777285¶
- Key_F23 = 16777286¶
- Key_F24 = 16777287¶
- Key_F25 = 16777288¶
- Key_F26 = 16777289¶
- Key_F27 = 16777290¶
- Key_F28 = 16777291¶
- Key_F29 = 16777292¶
- Key_F3 = 16777266¶
- Key_F30 = 16777293¶
- Key_F31 = 16777294¶
- Key_F32 = 16777295¶
- Key_F33 = 16777296¶
- Key_F34 = 16777297¶
- Key_F35 = 16777298¶
- Key_F4 = 16777267¶
- Key_F5 = 16777268¶
- Key_F6 = 16777269¶
- Key_F7 = 16777270¶
- Key_F8 = 16777271¶
- Key_F9 = 16777272¶
- Key_Favorites = 16777361¶
- Key_Finance = 16777411¶
- Key_Find = 16777506¶
- Key_Flip = 17825798¶
- Key_Forward = 16777314¶
- Key_G = 71¶
- Key_Game = 16777430¶
- Key_Go = 16777431¶
- Key_Greater = 62¶
- Key_Green = 16777493¶
- Key_Guide = 16777498¶
- Key_H = 72¶
- Key_Hangul = 16781617¶
- Key_Hangul_Banja = 16781625¶
- Key_Hangul_End = 16781619¶
- Key_Hangul_Hanja = 16781620¶
- Key_Hangul_Jamo = 16781621¶
- Key_Hangul_Jeonja = 16781624¶
- Key_Hangul_PostHanja = 16781627¶
- Key_Hangul_PreHanja = 16781626¶
- Key_Hangul_Romaja = 16781622¶
- Key_Hangul_Special = 16781631¶
- Key_Hangul_Start = 16781618¶
- Key_Hangup = 17825797¶
- Key_Hankaku = 16781609¶
- Key_Help = 16777304¶
- Key_Henkan = 16781603¶
- Key_Hibernate = 16777480¶
- Key_Hiragana = 16781605¶
- Key_Hiragana_Katakana = 16781607¶
- Key_History = 16777407¶
- Key_Home = 16777232¶
- Key_HomePage = 16777360¶
- Key_HotLinks = 16777409¶
- Key_Hyper_L = 16777302¶
- Key_Hyper_R = 16777303¶
- Key_I = 73¶
- Key_Iacute = 205¶
- Key_Icircumflex = 206¶
- Key_Idiaeresis = 207¶
- Key_Igrave = 204¶
- Key_Info = 16777499¶
- Key_Insert = 16777222¶
- Key_J = 74¶
- Key_K = 75¶
- Key_Kana_Lock = 16781613¶
- Key_Kana_Shift = 16781614¶
- Key_Kanji = 16781601¶
- Key_Katakana = 16781606¶
- Key_KeyboardBrightnessDown = 16777398¶
- Key_KeyboardBrightnessUp = 16777397¶
- Key_KeyboardLightOnOff = 16777396¶
- Key_L = 76¶
- Key_LastNumberRedial = 17825801¶
- Key_Launch0 = 16777378¶
- Key_Launch1 = 16777379¶
- Key_Launch2 = 16777380¶
- Key_Launch3 = 16777381¶
- Key_Launch4 = 16777382¶
- Key_Launch5 = 16777383¶
- Key_Launch6 = 16777384¶
- Key_Launch7 = 16777385¶
- Key_Launch8 = 16777386¶
- Key_Launch9 = 16777387¶
- Key_LaunchA = 16777388¶
- Key_LaunchB = 16777389¶
- Key_LaunchC = 16777390¶
- Key_LaunchD = 16777391¶
- Key_LaunchE = 16777392¶
- Key_LaunchF = 16777393¶
- Key_LaunchG = 16777486¶
- Key_LaunchH = 16777487¶
- Key_LaunchMail = 16777376¶
- Key_LaunchMedia = 16777377¶
- Key_Left = 16777234¶
- Key_Less = 60¶
- Key_LightBulb = 16777405¶
- Key_LogOff = 16777433¶
- Key_M = 77¶
- Key_MailForward = 16777467¶
- Key_Market = 16777434¶
- Key_Massyo = 16781612¶
- Key_MediaLast = 16842751¶
- Key_MediaNext = 16777347¶
- Key_MediaPause = 16777349¶
- Key_MediaPlay = 16777344¶
- Key_MediaPrevious = 16777346¶
- Key_MediaRecord = 16777348¶
- Key_MediaStop = 16777345¶
- Key_MediaTogglePlayPause = 16777350¶
- Key_Meeting = 16777435¶
- Key_Memo = 16777404¶
- Key_Menu = 16777301¶
- Key_MenuKB = 16777436¶
- Key_MenuPB = 16777437¶
- Key_Messenger = 16777465¶
- Key_Meta = 16777250¶
- Key_MicMute = 16777491¶
- Key_MicVolumeDown = 16777502¶
- Key_MicVolumeUp = 16777501¶
- Key_Minus = 45¶
- Key_Mode_switch = 16781694¶
- Key_MonBrightnessDown = 16777395¶
- Key_MonBrightnessUp = 16777394¶
- Key_Muhenkan = 16781602¶
- Key_Multi_key = 16781600¶
- Key_MultipleCandidate = 16781629¶
- Key_Music = 16777469¶
- Key_MySites = 16777438¶
- Key_N = 78¶
- Key_New = 16777504¶
- Key_News = 16777439¶
- Key_No = 16842754¶
- Key_Ntilde = 209¶
- Key_NumLock = 16777253¶
- Key_NumberSign = 35¶
- Key_O = 79¶
- Key_Oacute = 211¶
- Key_Ocircumflex = 212¶
- Key_Odiaeresis = 214¶
- Key_OfficeHome = 16777440¶
- Key_Ograve = 210¶
- Key_Ooblique = 216¶
- Key_Open = 16777505¶
- Key_OpenUrl = 16777364¶
- Key_Option = 16777441¶
- Key_Otilde = 213¶
- Key_P = 80¶
- Key_PageDown = 16777239¶
- Key_PageUp = 16777238¶
- Key_ParenLeft = 40¶
- Key_ParenRight = 41¶
- Key_Paste = 16777442¶
- Key_Pause = 16777224¶
- Key_Percent = 37¶
- Key_Period = 46¶
- Key_Phone = 16777443¶
- Key_Pictures = 16777468¶
- Key_Play = 16908293¶
- Key_Plus = 43¶
- Key_PowerDown = 16777483¶
- Key_PowerOff = 16777399¶
- Key_PreviousCandidate = 16781630¶
- Key_Print = 16777225¶
- Key_Printer = 16908290¶
- Key_Q = 81¶
- Key_Question = 63¶
- Key_QuoteDbl = 34¶
- Key_QuoteLeft = 96¶
- Key_R = 82¶
- Key_Red = 16777492¶
- Key_Redo = 16777508¶
- Key_Refresh = 16777316¶
- Key_Reload = 16777446¶
- Key_Reply = 16777445¶
- Key_Return = 16777220¶
- Key_Right = 16777236¶
- Key_Romaji = 16781604¶
- Key_RotateWindows = 16777447¶
- Key_RotationKB = 16777449¶
- Key_RotationPB = 16777448¶
- Key_S = 83¶
- Key_Save = 16777450¶
- Key_ScreenSaver = 16777402¶
- Key_ScrollLock = 16777254¶
- Key_Search = 16777362¶
- Key_Select = 16842752¶
- Key_Semicolon = 59¶
- Key_Send = 16777451¶
- Key_Settings = 16777500¶
- Key_Shift = 16777248¶
- Key_Shop = 16777406¶
- Key_SingleCandidate = 16781628¶
- Key_Slash = 47¶
- Key_Sleep = 16908292¶
- Key_Space = 32¶
- Key_Spell = 16777452¶
- Key_SplitScreen = 16777453¶
- Key_Standby = 16777363¶
- Key_Stop = 16777315¶
- Key_Subtitle = 16777477¶
- Key_Super_L = 16777299¶
- Key_Super_R = 16777300¶
- Key_Support = 16777454¶
- Key_Suspend = 16777484¶
- Key_SysReq = 16777226¶
- Key_T = 84¶
- Key_THORN = 222¶
- Key_Tab = 16777217¶
- Key_TaskPane = 16777455¶
- Key_Terminal = 16777456¶
- Key_Time = 16777479¶
- Key_ToDoList = 16777420¶
- Key_ToggleCallHangup = 17825799¶
- Key_Tools = 16777457¶
- Key_TopMenu = 16777482¶
- Key_TouchpadOff = 16777490¶
- Key_TouchpadOn = 16777489¶
- Key_TouchpadToggle = 16777488¶
- Key_Touroku = 16781611¶
- Key_Travel = 16777458¶
- Key_TrebleDown = 16777335¶
- Key_TrebleUp = 16777334¶
- Key_U = 85¶
- Key_UWB = 16777473¶
- Key_Uacute = 218¶
- Key_Ucircumflex = 219¶
- Key_Udiaeresis = 220¶
- Key_Ugrave = 217¶
- Key_Underscore = 95¶
- Key_Undo = 16777507¶
- Key_Up = 16777235¶
- Key_V = 86¶
- Key_Video = 16777459¶
- Key_View = 16777481¶
- Key_VoiceDial = 17825800¶
- Key_VolumeDown = 16777328¶
- Key_VolumeMute = 16777329¶
- Key_VolumeUp = 16777330¶
- Key_W = 87¶
- Key_WLAN = 16777472¶
- Key_WWW = 16777403¶
- Key_WakeUp = 16777400¶
- Key_WebCam = 16777466¶
- Key_Word = 16777460¶
- Key_X = 88¶
- Key_Xfer = 16777461¶
- Key_Y = 89¶
- Key_Yacute = 221¶
- Key_Yellow = 16777494¶
- Key_Yes = 16842753¶
- Key_Z = 90¶
- Key_Zenkaku = 16781608¶
- Key_Zenkaku_Hankaku = 16781610¶
- Key_Zoom = 16908294¶
- Key_ZoomIn = 16777462¶
- Key_ZoomOut = 16777463¶
- Key_acute = 180¶
- Key_brokenbar = 166¶
- Key_cedilla = 184¶
- Key_cent = 162¶
- Key_copyright = 169¶
- Key_currency = 164¶
- Key_degree = 176¶
- Key_diaeresis = 168¶
- Key_division = 247¶
- Key_exclamdown = 161¶
- Key_guillemotleft = 171¶
- Key_guillemotright = 187¶
- Key_hyphen = 173¶
- Key_iTouch = 16777432¶
- Key_macron = 175¶
- Key_masculine = 186¶
- Key_mu = 181¶
- Key_multiply = 215¶
- Key_nobreakspace = 160¶
- Key_notsign = 172¶
- Key_onehalf = 189¶
- Key_onequarter = 188¶
- Key_onesuperior = 185¶
- Key_ordfeminine = 170¶
- Key_paragraph = 182¶
- Key_periodcentered = 183¶
- Key_plusminus = 177¶
- Key_questiondown = 191¶
- Key_registered = 174¶
- Key_section = 167¶
- Key_ssharp = 223¶
- Key_sterling = 163¶
- Key_threequarters = 190¶
- Key_threesuperior = 179¶
- Key_twosuperior = 178¶
- Key_unknown = 33554431¶
- Key_ydiaeresis = 255¶
- Key_yen = 165¶
- KeyboardModifierMask = -33554432¶
- class KeyboardModifiers¶
- class KeyboardModifiers(f: Qt.KeyboardModifiers | Qt.KeyboardModifier)
- class KeyboardModifiers(a0: Qt.KeyboardModifiers)
Bases:
simplewrapper
- KeypadModifier = 536870912¶
- LandscapeOrientation = 2¶
- LastCursor = 21¶
- LayoutDirectionAuto = 2¶
- LeftArrow = 3¶
- LeftButton = 1¶
- LeftDockWidgetArea = 1¶
- LeftEdge = 2¶
- LeftSection = 1¶
- LeftToRight = 0¶
- LeftToolBarArea = 1¶
- LinearGradientPattern = 15¶
- LinkAction = 4¶
- LinksAccessibleByKeyboard = 8¶
- LinksAccessibleByMouse = 4¶
- LocalDate = 2¶
- LocalTime = 0¶
- LocaleDate = 3¶
- LogicalCoordinates = 1¶
- LogicalMoveStyle = 0¶
- LowEventPriority = -1¶
- META = 268435456¶
- MODIFIER_MASK = -33554432¶
- MPenCapStyle = 48¶
- MPenJoinStyle = 448¶
- MPenStyle = 15¶
- MSWindowsFixedSizeDialogHint = 256¶
- MSWindowsOwnDC = 512¶
- MacWindowToolBarButtonHint = 268435456¶
- MarkdownText = 3¶
- MaskInColor = 0¶
- MaskOutColor = 1¶
- MatchCaseSensitive = 16¶
- MatchContains = 1¶
- MatchEndsWith = 3¶
- MatchExactly = 0¶
- MatchFixedString = 8¶
- class MatchFlags¶
- class MatchFlags(f: Qt.MatchFlags | Qt.MatchFlag)
- class MatchFlags(a0: Qt.MatchFlags)
Bases:
simplewrapper
- MatchRecursive = 64¶
- MatchRegExp = 4¶
- MatchRegularExpression = 9¶
- MatchStartsWith = 2¶
- MatchWildcard = 5¶
- MatchWrap = 32¶
- MaximizeUsingFullscreenGeometryHint = 4194304¶
- MaximumSize = 2¶
- MenuBarFocusReason = 6¶
- MetaModifier = 268435456¶
- MidButton = 4¶
- MiddleButton = 4¶
- MinimumDescent = 3¶
- MinimumSize = 0¶
- MiterJoin = 0¶
- Monday = 1¶
- MonoOnly = 2¶
- class MouseButtons¶
- class MouseButtons(f: Qt.MouseButtons | Qt.MouseButton)
- class MouseButtons(a0: Qt.MouseButtons)
Bases:
simplewrapper
- MouseEventCreatedDoubleClick = 1¶
- class MouseEventFlags¶
- class MouseEventFlags(f: Qt.MouseEventFlags | Qt.MouseEventFlag)
- class MouseEventFlags(a0: Qt.MouseEventFlags)
Bases:
simplewrapper
- MouseEventNotSynthesized = 0¶
- MouseEventSynthesizedByApplication = 3¶
- MouseEventSynthesizedByQt = 2¶
- MouseEventSynthesizedBySystem = 1¶
- MouseFocusReason = 0¶
- MoveAction = 2¶
Bases:
int
- NoArrow = 0¶
- NoBrush = 0¶
- NoButton = 0¶
- NoClip = 0¶
- NoContextMenu = 0¶
- NoDockWidgetArea = 0¶
- NoDropShadowWindowHint = 1073741824¶
- NoFocus = 0¶
- NoFocusReason = 8¶
- NoFormatConversion = 512¶
- NoItemFlags = 0¶
- NoModifier = 0¶
- NoOpaqueDetection = 256¶
- NoPen = 0¶
- NoScrollPhase = 0¶
- NoSection = 0¶
- NoTabFocus = 0¶
- NoTextInteraction = 0¶
- NoToolBarArea = 0¶
- NonModal = 0¶
- NormalEventPriority = 0¶
- OddEvenFill = 0¶
- OffsetFromUTC = 2¶
- OpaqueMode = 1¶
- OpenHandCursor = 17¶
- OrderedAlphaDither = 4¶
- OrderedDither = 16¶
- class Orientations¶
- class Orientations(f: Qt.Orientations | Qt.Orientation)
- class Orientations(a0: Qt.Orientations)
Bases:
simplewrapper
- OtherFocusReason = 7¶
- PanGesture = 3¶
- PanNativeGesture = 2¶
- PartiallyChecked = 1¶
- PassThrough = 5¶
- PinchGesture = 4¶
- PlainText = 0¶
- PointingHandCursor = 13¶
- Popup = 9¶
- PopupFocusReason = 4¶
- PortraitOrientation = 1¶
- PreciseTimer = 0¶
- PreferDither = 64¶
- PreferredSize = 1¶
- PreventContextMenu = 4¶
- PrimaryOrientation = 0¶
- QueuedConnection = 2¶
- RFC2822Date = 8¶
- RadialGradientPattern = 16¶
- ReceivePartialGestures = 2¶
- RelativeSize = 1¶
- RepeatTile = 1¶
- ReplaceClip = 1¶
- ReplaceSelection = 0¶
- RichText = 1¶
- RightArrow = 4¶
- RightButton = 2¶
- RightDockWidgetArea = 2¶
- RightEdge = 4¶
- RightSection = 5¶
- RightToLeft = 1¶
- RightToolBarArea = 2¶
- RotateNativeGesture = 5¶
- Round = 1¶
- RoundCap = 32¶
- RoundJoin = 128¶
- RoundPreferFloor = 4¶
- RoundTile = 2¶
- SHIFT = 33554432¶
- Saturday = 6¶
- class ScreenOrientations¶
- class ScreenOrientations(f: Qt.ScreenOrientations | Qt.ScreenOrientation)
- class ScreenOrientations(a0: Qt.ScreenOrientations)
Bases:
simplewrapper
- ScrollBarAlwaysOff = 1¶
- ScrollBarAlwaysOn = 2¶
- ScrollBarAsNeeded = 0¶
- ScrollBegin = 1¶
- ScrollEnd = 3¶
- ScrollMomentum = 4¶
- ScrollUpdate = 2¶
- Sheet = 5¶
- ShiftModifier = 33554432¶
- ShortcutFocusReason = 5¶
- SizeAllCursor = 9¶
- SizeBDiagCursor = 7¶
- SizeFDiagCursor = 8¶
- SizeHintRole = 13¶
- SizeHorCursor = 6¶
- SizeVerCursor = 5¶
- SmartZoomNativeGesture = 4¶
- SmoothTransformation = 1¶
- SolidLine = 1¶
- SolidPattern = 1¶
- SplashScreen = 15¶
- SplitHCursor = 12¶
- SplitVCursor = 11¶
- SquareCap = 16¶
- StatusTipRole = 4¶
- StretchTile = 0¶
- StrongFocus = 11¶
- SubWindow = 18¶
- Sunday = 7¶
- SvgMiterJoin = 256¶
- SwipeGesture = 5¶
- SwipeNativeGesture = 6¶
- SystemLocaleDate = 2¶
- SystemLocaleLongDate = 5¶
- SystemLocaleShortDate = 4¶
- TabFocus = 1¶
- TabFocusAllControls = 255¶
- TabFocusListControls = 2¶
- TabFocusReason = 1¶
- TabFocusTextControls = 1¶
- TapAndHoldGesture = 2¶
- TapGesture = 1¶
- TargetMoveAction = 32770¶
- TaskButton = 32¶
- TextAlignmentRole = 7¶
- TextBrowserInteraction = 13¶
- TextColorRole = 9¶
- TextDate = 0¶
- TextDontClip = 512¶
- TextDontPrint = 16384¶
- TextEditable = 16¶
- TextEditorInteraction = 19¶
- TextExpandTabs = 1024¶
- TextHideMnemonic = 32768¶
- TextIncludeTrailingSpaces = 134217728¶
- class TextInteractionFlags¶
- class TextInteractionFlags(f: Qt.TextInteractionFlags | Qt.TextInteractionFlag)
- class TextInteractionFlags(a0: Qt.TextInteractionFlags)
Bases:
simplewrapper
- TextJustificationForced = 65536¶
- TextSelectableByKeyboard = 2¶
- TextSelectableByMouse = 1¶
- TextShowMnemonic = 2048¶
- TextSingleLine = 256¶
- TextWordWrap = 4096¶
- TextWrapAnywhere = 8192¶
- TexturePattern = 24¶
- ThresholdAlphaDither = 0¶
- ThresholdDither = 32¶
- Thursday = 4¶
- TimeZone = 3¶
- TitleBarArea = 9¶
- Tool = 11¶
- ToolBarArea_Mask = 15¶
- class ToolBarAreas¶
- class ToolBarAreas(f: Qt.ToolBarAreas | Qt.ToolBarArea)
- class ToolBarAreas(a0: Qt.ToolBarAreas)
Bases:
simplewrapper
- ToolButtonFollowStyle = 4¶
- ToolButtonIconOnly = 0¶
- ToolButtonTextBesideIcon = 2¶
- ToolButtonTextOnly = 1¶
- ToolButtonTextUnderIcon = 3¶
- ToolTip = 13¶
- ToolTipRole = 3¶
- TopDockWidgetArea = 4¶
- TopEdge = 1¶
- TopLeftCorner = 0¶
- TopLeftSection = 2¶
- TopRightCorner = 1¶
- TopRightSection = 4¶
- TopSection = 3¶
- TopToolBarArea = 4¶
- TouchPointMoved = 2¶
- TouchPointPressed = 1¶
- TouchPointReleased = 8¶
- class TouchPointStates¶
- class TouchPointStates(f: Qt.TouchPointStates | Qt.TouchPointState)
- class TouchPointStates(a0: Qt.TouchPointStates)
Bases:
simplewrapper
- TouchPointStationary = 4¶
- TransparentMode = 0¶
- Tuesday = 2¶
- UI_AnimateCombo = 3¶
- UI_AnimateMenu = 1¶
- UI_AnimateToolBox = 6¶
- UI_AnimateTooltip = 4¶
- UI_FadeMenu = 2¶
- UI_FadeTooltip = 5¶
- UI_General = 0¶
- UNICODE_ACCEL = 0¶
- UTC = 1¶
- Unchecked = 0¶
- UniqueConnection = 128¶
- UpArrow = 1¶
- UpArrowCursor = 1¶
- UserRole = 256¶
- VerPattern = 10¶
- Vertical = 2¶
- VeryCoarseTimer = 2¶
- VisualMoveStyle = 1¶
- WA_AcceptDrops = 78¶
- WA_AcceptTouchEvents = 121¶
- WA_AlwaysShowToolTips = 84¶
- WA_AlwaysStackOnTop = 128¶
- WA_AttributeCount = 132¶
- WA_ContentsMarginsRespectsSafeArea = 130¶
- WA_CustomWhatsThis = 47¶
- WA_DeleteOnClose = 55¶
- WA_Disabled = 0¶
- WA_DontCreateNativeAncestors = 101¶
- WA_DontShowOnScreen = 103¶
- WA_ForceDisabled = 32¶
- WA_ForceUpdatesDisabled = 59¶
- WA_GrabbedShortcut = 50¶
- WA_GroupLeader = 72¶
- WA_Hover = 74¶
- WA_InputMethodEnabled = 14¶
- WA_InputMethodTransparent = 75¶
- WA_InvalidSize = 45¶
- WA_KeyCompression = 33¶
- WA_KeyboardFocusChange = 77¶
- WA_LaidOut = 7¶
- WA_LayoutOnEntireRect = 48¶
- WA_LayoutUsesWidgetRect = 92¶
- WA_MSWindowsUseDirect3D = 94¶
- WA_MacAlwaysShowToolWindow = 96¶
- WA_MacBrushedMetal = 46¶
- WA_MacFrameworkScaled = 117¶
- WA_MacMetalStyle = 46¶
- WA_MacMiniSize = 91¶
- WA_MacNoClickThrough = 12¶
- WA_MacNoShadow = 127¶
- WA_MacNormalSize = 89¶
- WA_MacOpaqueSizeGrip = 85¶
- WA_MacShowFocusRect = 88¶
- WA_MacSmallSize = 90¶
- WA_MacVariableSize = 102¶
- WA_Mapped = 11¶
- WA_MouseNoMask = 71¶
- WA_MouseTracking = 2¶
- WA_Moved = 43¶
- WA_NativeWindow = 100¶
- WA_NoChildEventsForParent = 58¶
- WA_NoChildEventsFromChildren = 39¶
- WA_NoMousePropagation = 73¶
- WA_NoMouseReplay = 54¶
- WA_NoSystemBackground = 9¶
- WA_NoX11EventCompression = 81¶
- WA_OpaquePaintEvent = 4¶
- WA_OutsideWSRange = 49¶
- WA_PaintOnScreen = 8¶
- WA_PaintUnclipped = 52¶
- WA_PendingMoveEvent = 34¶
- WA_PendingResizeEvent = 35¶
- WA_PendingUpdate = 44¶
- WA_QuitOnClose = 76¶
- WA_Resized = 42¶
- WA_RightToLeft = 56¶
- WA_SetCursor = 38¶
- WA_SetFont = 37¶
- WA_SetLayoutDirection = 57¶
- WA_SetLocale = 87¶
- WA_SetPalette = 36¶
- WA_SetStyle = 86¶
- WA_SetWindowIcon = 53¶
- WA_ShowWithoutActivating = 98¶
- WA_StaticContents = 5¶
- WA_StyleSheet = 97¶
- WA_StyleSheetTarget = 131¶
- WA_StyledBackground = 93¶
- WA_TabletTracking = 129¶
- WA_TintedBackground = 82¶
- WA_TouchPadAcceptSingleTouchEvents = 123¶
- WA_TranslucentBackground = 120¶
- WA_TransparentForMouseEvents = 51¶
- WA_UnderMouse = 1¶
- WA_UpdatesDisabled = 10¶
- WA_WState_CompressKeys = 61¶
- WA_WState_ConfigPending = 64¶
- WA_WState_Created = 60¶
- WA_WState_ExplicitShowHide = 69¶
- WA_WState_Hidden = 16¶
- WA_WState_InPaintEvent = 62¶
- WA_WState_OwnSizePolicy = 68¶
- WA_WState_Polished = 66¶
- WA_WState_Reparented = 63¶
- WA_WState_Visible = 15¶
- WA_WindowModified = 41¶
- WA_WindowPropagation = 80¶
- WA_X11DoNotAcceptFocus = 126¶
- WA_X11NetWmWindowTypeCombo = 115¶
- WA_X11NetWmWindowTypeDND = 116¶
- WA_X11NetWmWindowTypeDesktop = 104¶
- WA_X11NetWmWindowTypeDialog = 110¶
- WA_X11NetWmWindowTypeDock = 105¶
- WA_X11NetWmWindowTypeDropDownMenu = 111¶
- WA_X11NetWmWindowTypeMenu = 107¶
- WA_X11NetWmWindowTypeNotification = 114¶
- WA_X11NetWmWindowTypePopupMenu = 112¶
- WA_X11NetWmWindowTypeSplash = 109¶
- WA_X11NetWmWindowTypeToolBar = 106¶
- WA_X11NetWmWindowTypeToolTip = 113¶
- WA_X11NetWmWindowTypeUtility = 108¶
- WA_X11OpenGLOverlay = 83¶
- WaitCursor = 3¶
- Wednesday = 3¶
- WhatsThisCursor = 15¶
- WhatsThisRole = 5¶
- WheelFocus = 15¶
- WhiteSpaceModeUndefined = -1¶
- WhiteSpaceNoWrap = 2¶
- WhiteSpaceNormal = 0¶
- WhiteSpacePre = 1¶
- Widget = 0¶
- WidgetShortcut = 0¶
- WidgetWithChildrenShortcut = 3¶
- WindingFill = 1¶
- Window = 1¶
- WindowActive = 8¶
- WindowCloseButtonHint = 134217728¶
- WindowContextHelpButtonHint = 65536¶
- WindowDoesNotAcceptFocus = 2097152¶
- class WindowFlags¶
- class WindowFlags(f: Qt.WindowFlags | Qt.WindowType)
- class WindowFlags(a0: Qt.WindowFlags)
Bases:
simplewrapper
- WindowFullScreen = 4¶
- WindowFullscreenButtonHint = -2147483648¶
- WindowMaximizeButtonHint = 32768¶
- WindowMaximized = 2¶
- WindowMinMaxButtonsHint = 49152¶
- WindowMinimizeButtonHint = 16384¶
- WindowMinimized = 1¶
- WindowModal = 1¶
- WindowNoState = 0¶
- WindowOverridesSystemGestures = 1048576¶
- WindowShadeButtonHint = 131072¶
- WindowShortcut = 1¶
- class WindowStates¶
- class WindowStates(f: Qt.WindowStates | Qt.WindowState)
- class WindowStates(a0: Qt.WindowStates)
Bases:
simplewrapper
- WindowStaysOnBottomHint = 67108864¶
- WindowStaysOnTopHint = 262144¶
- WindowSystemMenuHint = 8192¶
- WindowTitleHint = 4096¶
- WindowTransparentForInput = 524288¶
- WindowType_Mask = 255¶
- X11BypassWindowManagerHint = 1024¶
- XAxis = 0¶
- XButton1 = 8¶
- XButton2 = 16¶
- YAxis = 1¶
- ZAxis = 2¶
- ZoomNativeGesture = 3¶
- black = 2¶
- blue = 9¶
- color0 = 0¶
- color1 = 1¶
- convertFromPlainText(plain: str | None, mode: Qt.WhiteSpaceMode = Qt.WhiteSpacePre) str¶
- cyan = 10¶
- darkBlue = 15¶
- darkCyan = 16¶
- darkGray = 4¶
- darkGreen = 14¶
- darkMagenta = 17¶
- darkRed = 13¶
- darkYellow = 18¶
- gray = 5¶
- green = 8¶
- lightGray = 6¶
- magenta = 11¶
- red = 7¶
- transparent = 19¶
- white = 3¶
- yellow = 12¶
- class populse_mia.user_interface.main_window.QTimer(parent: QObject | None = None)¶
Bases:
QObject- setTimerType(self, atype: Qt.TimerType)¶
- singleShot(msec: int, slot: PYQT_SLOT)¶
- singleShot(msec: int, timerType: Qt.TimerType, slot: PYQT_SLOT) None
- stop(self)¶
- timeout¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- timerType(self) Qt.TimerType¶
- class populse_mia.user_interface.main_window.QCursor¶
- class populse_mia.user_interface.main_window.QCursor(bitmap: QBitmap, mask: QBitmap, hotX: int = -1, hotY: int = -1)
- class populse_mia.user_interface.main_window.QCursor(pixmap: QPixmap, hotX: int = -1, hotY: int = -1)
- class populse_mia.user_interface.main_window.QCursor(cursor: QCursor | Qt.CursorShape)
- class populse_mia.user_interface.main_window.QCursor(variant: Any)
Bases:
simplewrapper- setPos(x: int, y: int)¶
- setPos(p: QPoint) None
- setPos(screen: QScreen | None, x: int, y: int) None
- setPos(screen: QScreen | None, p: QPoint) None
- setShape(self, newShape: Qt.CursorShape)¶
- shape(self) Qt.CursorShape¶
- swap(self, other: QCursor | Qt.CursorShape)¶
- class populse_mia.user_interface.main_window.QIcon¶
- class populse_mia.user_interface.main_window.QIcon(pixmap: QPixmap)
- class populse_mia.user_interface.main_window.QIcon(other: QIcon)
- class populse_mia.user_interface.main_window.QIcon(fileName: str | None)
- class populse_mia.user_interface.main_window.QIcon(engine: QIconEngine | None)
- class populse_mia.user_interface.main_window.QIcon(variant: Any)
Bases:
wrapper- Active = 2¶
- Disabled = 1¶
- Normal = 0¶
- Off = 1¶
- On = 0¶
- Selected = 3¶
- actualSize(self, size: QSize, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off) QSize¶
- actualSize(self, window: QWindow | None, size: QSize, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off) QSize
- addFile(self, fileName: str | None, size: QSize = QSize(), mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off)¶
- addPixmap(self, pixmap: QPixmap, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off)¶
- availableSizes(self, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off) List[QSize]¶
- paint(self, painter: QPainter | None, rect: QRect, alignment: Qt.Alignment | Qt.AlignmentFlag = Qt.AlignCenter, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off)¶
- paint(self, painter: QPainter | None, x: int, y: int, w: int, h: int, alignment: Qt.Alignment | Qt.AlignmentFlag = Qt.AlignCenter, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off) None
- pixmap(self, size: QSize, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off) QPixmap¶
- pixmap(self, w: int, h: int, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off) QPixmap
- pixmap(self, extent: int, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off) QPixmap
- pixmap(self, window: QWindow | None, size: QSize, mode: QIcon.Mode = QIcon.Normal, state: QIcon.State = QIcon.Off) QPixmap
- class populse_mia.user_interface.main_window.QAction(parent: QObject | None = None)¶
- class populse_mia.user_interface.main_window.QAction(text: str | None, parent: QObject | None = None)
- class populse_mia.user_interface.main_window.QAction(icon: QIcon, text: str | None, parent: QObject | None = None)
Bases:
QObject- AboutQtRole = 3¶
- AboutRole = 4¶
- ApplicationSpecificRole = 2¶
- HighPriority = 256¶
- Hover = 1¶
- LowPriority = 0¶
- NoRole = 0¶
- NormalPriority = 128¶
- PreferencesRole = 5¶
- QuitRole = 6¶
- TextHeuristicRole = 1¶
- Trigger = 0¶
- activate(self, event: QAction.ActionEvent)¶
- changed¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- hover(self)¶
- hovered¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- priority(self) QAction.Priority¶
- setMenuRole(self, menuRole: QAction.MenuRole)¶
- setPriority(self, priority: QAction.Priority)¶
- setShortcutContext(self, context: Qt.ShortcutContext)¶
- setShortcuts(self, shortcuts: Iterable[QKeySequence | QKeySequence.StandardKey | str | None | int])¶
- setShortcuts(self, a0: QKeySequence.StandardKey) None
- shortcut(self) QKeySequence¶
- shortcutContext(self) Qt.ShortcutContext¶
- toggle(self)¶
- toggled¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- trigger(self)¶
- triggered¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- class populse_mia.user_interface.main_window.QApplication(argv: List[str])¶
Bases:
QGuiApplication- CustomColor = 1¶
- ManyColor = 2¶
- NormalColor = 0¶
- aboutQt()¶
- beep()¶
- closeAllWindows()¶
- focusChanged¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- fontMetrics() QFontMetrics¶
- globalStrut() QSize¶
- isEffectEnabled(a0: Qt.UIEffect) bool¶
- setEffectEnabled(a0: Qt.UIEffect, enabled: bool = True)¶
- setGlobalStrut(a0: QSize)¶
- class populse_mia.user_interface.main_window.QMainWindow(parent: QWidget | None = None, flags: Qt.WindowFlags | Qt.WindowType = Qt.WindowFlags())¶
Bases:
QWidget- AllowNestedDocks = 2¶
- AllowTabbedDocks = 4¶
- AnimatedDocks = 1¶
- class DockOptions¶
- class DockOptions(f: QMainWindow.DockOptions | QMainWindow.DockOption)
- class DockOptions(a0: QMainWindow.DockOptions)
Bases:
simplewrapper
- ForceTabbedDocks = 8¶
- GroupedDragging = 32¶
- VerticalTabs = 16¶
- addDockWidget(self, area: Qt.DockWidgetArea, dockwidget: QDockWidget | None)¶
- addDockWidget(self, area: Qt.DockWidgetArea, dockwidget: QDockWidget | None, orientation: Qt.Orientation) None
- addToolBar(self, area: Qt.ToolBarArea, toolbar: QToolBar | None)¶
- addToolBar(self, toolbar: QToolBar | None) None
- addToolBar(self, title: str | None) QToolBar | None
- addToolBarBreak(self, area: Qt.ToolBarArea = Qt.TopToolBarArea)¶
- corner(self, corner: Qt.Corner) Qt.DockWidgetArea¶
- dockOptions(self) QMainWindow.DockOptions¶
- dockWidgetArea(self, dockwidget: QDockWidget | None) Qt.DockWidgetArea¶
- iconSize(self) QSize¶
- iconSizeChanged¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- resizeDocks(self, docks: Iterable[QDockWidget], sizes: Iterable[int], orientation: Qt.Orientation)¶
- saveState(self, version: int = 0) QByteArray¶
- setCorner(self, corner: Qt.Corner, area: Qt.DockWidgetArea)¶
- setDockOptions(self, options: QMainWindow.DockOptions | QMainWindow.DockOption)¶
- setIconSize(self, iconSize: QSize)¶
- setTabPosition(self, areas: Qt.DockWidgetAreas | Qt.DockWidgetArea, tabPosition: QTabWidget.TabPosition)¶
- setTabShape(self, tabShape: QTabWidget.TabShape)¶
- setToolButtonStyle(self, toolButtonStyle: Qt.ToolButtonStyle)¶
- splitDockWidget(self, after: QDockWidget | None, dockwidget: QDockWidget | None, orientation: Qt.Orientation)¶
- tabPosition(self, area: Qt.DockWidgetArea) QTabWidget.TabPosition¶
- tabShape(self) QTabWidget.TabShape¶
- tabifiedDockWidgetActivated¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- toolBarArea(self, toolbar: QToolBar | None) Qt.ToolBarArea¶
- toolButtonStyle(self) Qt.ToolButtonStyle¶
- toolButtonStyleChanged¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- class populse_mia.user_interface.main_window.QMenu(parent: QWidget | None = None)¶
- class populse_mia.user_interface.main_window.QMenu(title: str | None, parent: QWidget | None = None)
Bases:
QWidget- aboutToHide¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- aboutToShow¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- addMenu(self, menu: QMenu | None) QAction | None¶
- addMenu(self, title: str | None) QMenu | None
- addMenu(self, icon: QIcon, title: str | None) QMenu | None
- addSection(self, text: str | None) QAction | None¶
- addSection(self, icon: QIcon, text: str | None) QAction | None
- clear(self)¶
- exec(self) QAction | None¶
- exec(self, pos: QPoint, action: QAction | None = None) QAction | None
- exec(actions: Iterable[QAction], pos: QPoint, at: QAction | None = None, parent: QWidget | None = None) QAction | None
- exec_(self) QAction | None¶
- exec_(self, p: QPoint, action: QAction | None = None) QAction | None
- exec_(actions: Iterable[QAction], pos: QPoint, at: QAction | None = None, parent: QWidget | None = None) QAction | None
- hideTearOffMenu(self)¶
- hovered¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- insertSection(self, before: QAction | None, text: str | None) QAction | None¶
- insertSection(self, before: QAction | None, icon: QIcon, text: str | None) QAction | None
- sizeHint(self) QSize¶
- triggered¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- class populse_mia.user_interface.main_window.QMessageBox(parent: QWidget | None = None)¶
- class populse_mia.user_interface.main_window.QMessageBox(icon: QMessageBox.Icon, title: str | None, text: str | None, buttons: QMessageBox.StandardButtons | QMessageBox.StandardButton = QMessageBox.NoButton, parent: QWidget | None = None, flags: Qt.WindowFlags | Qt.WindowType = Qt.Dialog | Qt.MSWindowsFixedSizeDialogHint)
Bases:
QDialog- Abort = 262144¶
- AcceptRole = 0¶
- ActionRole = 3¶
- Apply = 33554432¶
- ApplyRole = 8¶
- ButtonMask = -769¶
- Cancel = 4194304¶
- Close = 2097152¶
- Critical = 3¶
- Default = 256¶
- DestructiveRole = 2¶
- Discard = 8388608¶
- Escape = 512¶
- FirstButton = 1024¶
- FlagMask = 768¶
- Help = 16777216¶
- HelpRole = 4¶
- Ignore = 1048576¶
- Information = 1¶
- InvalidRole = -1¶
- LastButton = 134217728¶
- No = 65536¶
- NoAll = 131072¶
- NoButton = 0¶
- NoIcon = 0¶
- NoRole = 6¶
- NoToAll = 131072¶
- Ok = 1024¶
- Open = 8192¶
- Question = 4¶
- RejectRole = 1¶
- Reset = 67108864¶
- ResetRole = 7¶
- RestoreDefaults = 134217728¶
- Retry = 524288¶
- Save = 2048¶
- SaveAll = 4096¶
- class StandardButtons¶
- class StandardButtons(f: QMessageBox.StandardButtons | QMessageBox.StandardButton)
- class StandardButtons(a0: QMessageBox.StandardButtons)
Bases:
simplewrapper
- Warning = 2¶
- Yes = 16384¶
- YesAll = 32768¶
- YesRole = 5¶
- YesToAll = 32768¶
- addButton(self, button: QAbstractButton | None, role: QMessageBox.ButtonRole)¶
- addButton(self, text: str | None, role: QMessageBox.ButtonRole) QPushButton | None
- addButton(self, button: QMessageBox.StandardButton) QPushButton | None
- button(self, which: QMessageBox.StandardButton) QAbstractButton | None¶
- buttonClicked¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- buttonRole(self, button: QAbstractButton | None) QMessageBox.ButtonRole¶
- critical(parent: QWidget | None, title: str | None, text: str | None, buttons: QMessageBox.StandardButtons | QMessageBox.StandardButton = QMessageBox.Ok, defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton) QMessageBox.StandardButton¶
- defaultButton(self) QPushButton | None¶
- icon(self) QMessageBox.Icon¶
- information(parent: QWidget | None, title: str | None, text: str | None, buttons: QMessageBox.StandardButtons | QMessageBox.StandardButton = QMessageBox.Ok, defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton) QMessageBox.StandardButton¶
- question(parent: QWidget | None, title: str | None, text: str | None, buttons: QMessageBox.StandardButtons | QMessageBox.StandardButton = QMessageBox.StandardButtons(QMessageBox.Yes | QMessageBox.No), defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton) QMessageBox.StandardButton¶
- setDefaultButton(self, button: QPushButton | None)¶
- setDefaultButton(self, button: QMessageBox.StandardButton) None
- setEscapeButton(self, button: QAbstractButton | None)¶
- setEscapeButton(self, button: QMessageBox.StandardButton) None
- setIcon(self, a0: QMessageBox.Icon)¶
- setStandardButtons(self, buttons: QMessageBox.StandardButtons | QMessageBox.StandardButton)¶
- setTextFormat(self, a0: Qt.TextFormat)¶
- setTextInteractionFlags(self, flags: Qt.TextInteractionFlags | Qt.TextInteractionFlag)¶
- setWindowModality(self, windowModality: Qt.WindowModality)¶
- standardButton(self, button: QAbstractButton | None) QMessageBox.StandardButton¶
- standardButtons(self) QMessageBox.StandardButtons¶
- standardIcon(icon: QMessageBox.Icon) QPixmap¶
- textFormat(self) Qt.TextFormat¶
- textInteractionFlags(self) Qt.TextInteractionFlags¶
- warning(parent: QWidget | None, title: str | None, text: str | None, buttons: QMessageBox.StandardButtons | QMessageBox.StandardButton = QMessageBox.Ok, defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton) QMessageBox.StandardButton¶
- class populse_mia.user_interface.main_window.QPushButton(parent: QWidget | None = None)¶
- class populse_mia.user_interface.main_window.QPushButton(text: str | None, parent: QWidget | None = None)
- class populse_mia.user_interface.main_window.QPushButton(icon: QIcon, text: str | None, parent: QWidget | None = None)
Bases:
QAbstractButton- minimumSizeHint(self) QSize¶
- showMenu(self)¶
- sizeHint(self) QSize¶
- class populse_mia.user_interface.main_window.QTabWidget(parent: QWidget | None = None)¶
Bases:
QWidget- East = 3¶
- North = 0¶
- Rounded = 0¶
- South = 1¶
- Triangular = 1¶
- West = 2¶
- addTab(self, widget: QWidget | None, a1: str | None) int¶
- addTab(self, widget: QWidget | None, icon: QIcon, label: str | None) int
- clear(self)¶
- currentChanged¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- elideMode(self) Qt.TextElideMode¶
- iconSize(self) QSize¶
- insertTab(self, index: int, widget: QWidget | None, a2: str | None) int¶
- insertTab(self, index: int, widget: QWidget | None, icon: QIcon, label: str | None) int
- minimumSizeHint(self) QSize¶
- setElideMode(self, a0: Qt.TextElideMode)¶
- setIconSize(self, size: QSize)¶
- setTabPosition(self, a0: QTabWidget.TabPosition)¶
- setTabShape(self, s: QTabWidget.TabShape)¶
- sizeHint(self) QSize¶
- tabBarClicked¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- tabBarDoubleClicked¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- tabCloseRequested¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- tabPosition(self) QTabWidget.TabPosition¶
- tabShape(self) QTabWidget.TabShape¶
- class populse_mia.user_interface.main_window.QVBoxLayout¶
- class populse_mia.user_interface.main_window.QVBoxLayout(parent: QWidget | None)
Bases:
QBoxLayout
- class populse_mia.user_interface.main_window.QWidget(parent: QWidget | None = None, flags: Qt.WindowFlags | Qt.WindowType = Qt.WindowFlags())¶
Bases:
QObject,QPaintDevice- DrawChildren = 2¶
- DrawWindowBackground = 1¶
- IgnoreMask = 4¶
- class RenderFlags¶
- class RenderFlags(f: QWidget.RenderFlags | QWidget.RenderFlag)
- class RenderFlags(a0: QWidget.RenderFlags)
Bases:
simplewrapper
- activateWindow(self)¶
- adjustSize(self)¶
- backgroundRole(self) QPalette.ColorRole¶
- baseSize(self) QSize¶
- childrenRect(self) QRect¶
- childrenRegion(self) QRegion¶
- clearFocus(self)¶
- clearMask(self)¶
- contentsMargins(self) QMargins¶
- contentsRect(self) QRect¶
- contextMenuPolicy(self) Qt.ContextMenuPolicy¶
- create(self, window: PyQt5.sip.voidptr = None, initializeWindow: bool = True, destroyOldWindow: bool = True)¶
- createWindowContainer(window: QWindow | None, parent: QWidget | None = None, flags: Qt.WindowFlags | Qt.WindowType = 0) QWidget¶
- customContextMenuRequested¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- effectiveWinId(self) PyQt5.sip.voidptr¶
- ensurePolished(self)¶
- focusPolicy(self) Qt.FocusPolicy¶
- fontInfo(self) QFontInfo¶
- fontMetrics(self) QFontMetrics¶
- foregroundRole(self) QPalette.ColorRole¶
- frameGeometry(self) QRect¶
- frameSize(self) QSize¶
- geometry(self) QRect¶
- getContentsMargins(self)¶
- grabGesture(self, type: Qt.GestureType, flags: Qt.GestureFlags | Qt.GestureFlag = Qt.GestureFlags())¶
- grabKeyboard(self)¶
- grabMouse(self)¶
- grabMouse(self, a0: QCursor | Qt.CursorShape) None
- grabShortcut(self, key: QKeySequence | QKeySequence.StandardKey | str | None | int, context: Qt.ShortcutContext = Qt.WindowShortcut) int¶
- hide(self)¶
- inputMethodHints(self) Qt.InputMethodHints¶
- inputMethodQuery(self, a0: Qt.InputMethodQuery) Any¶
- layoutDirection(self) Qt.LayoutDirection¶
- locale(self) QLocale¶
- lower(self)¶
- mask(self) QRegion¶
- maximumSize(self) QSize¶
- minimumSize(self) QSize¶
- minimumSizeHint(self) QSize¶
- nativeEvent(self, eventType: QByteArray | bytes | bytearray, message: PyQt5.sip.voidptr | None)¶
- normalGeometry(self) QRect¶
- overrideWindowFlags(self, type: Qt.WindowFlags | Qt.WindowType)¶
- overrideWindowState(self, state: Qt.WindowStates | Qt.WindowState)¶
- palette(self) QPalette¶
- raise_(self)¶
- rect(self) QRect¶
- releaseKeyboard(self)¶
- releaseMouse(self)¶
- render(self, target: QPaintDevice | None, targetOffset: QPoint = QPoint(), sourceRegion: QRegion = QRegion(), flags: QWidget.RenderFlags | QWidget.RenderFlag = QWidget.RenderFlags(QWidget.RenderFlag.DrawWindowBackground | QWidget.RenderFlag.DrawChildren))¶
- render(self, painter: QPainter | None, targetOffset: QPoint = QPoint(), sourceRegion: QRegion = QRegion(), flags: QWidget.RenderFlags | QWidget.RenderFlag = QWidget.RenderFlags(QWidget.RenderFlag.DrawWindowBackground | QWidget.RenderFlag.DrawChildren)) None
- repaint(self)¶
- repaint(self, x: int, y: int, w: int, h: int) None
- repaint(self, a0: QRect) None
- repaint(self, a0: QRegion) None
- restoreGeometry(self, geometry: QByteArray | bytes | bytearray) bool¶
- saveGeometry(self) QByteArray¶
- setAttribute(self, attribute: Qt.WidgetAttribute, on: bool = True)¶
- setBackgroundRole(self, a0: QPalette.ColorRole)¶
- setContentsMargins(self, left: int, top: int, right: int, bottom: int)¶
- setContentsMargins(self, margins: QMargins) None
- setContextMenuPolicy(self, policy: Qt.ContextMenuPolicy)¶
- setCursor(self, a0: QCursor | Qt.CursorShape)¶
- setFocus(self)¶
- setFocus(self, reason: Qt.FocusReason) None
- setFocusPolicy(self, policy: Qt.FocusPolicy)¶
- setForegroundRole(self, a0: QPalette.ColorRole)¶
- setInputMethodHints(self, hints: Qt.InputMethodHints | Qt.InputMethodHint)¶
- setLayoutDirection(self, direction: Qt.LayoutDirection)¶
- setLocale(self, locale: QLocale)¶
- setPalette(self, a0: QPalette)¶
- setParent(self, parent: QWidget | None)¶
- setParent(self, parent: QWidget | None, f: Qt.WindowFlags | Qt.WindowType) None
- setSizePolicy(self, a0: QSizePolicy)¶
- setSizePolicy(self, hor: QSizePolicy.Policy, ver: QSizePolicy.Policy) None
- setWindowFlag(self, a0: Qt.WindowType, on: bool = True)¶
- setWindowFlags(self, type: Qt.WindowFlags | Qt.WindowType)¶
- setWindowModality(self, windowModality: Qt.WindowModality)¶
- setWindowState(self, state: Qt.WindowStates | Qt.WindowState)¶
- show(self)¶
- showFullScreen(self)¶
- showMaximized(self)¶
- showMinimized(self)¶
- showNormal(self)¶
- size(self) QSize¶
- sizeHint(self) QSize¶
- sizeIncrement(self) QSize¶
- sizePolicy(self) QSizePolicy¶
- testAttribute(self, attribute: Qt.WidgetAttribute) bool¶
- ungrabGesture(self, type: Qt.GestureType)¶
- unsetCursor(self)¶
- unsetLayoutDirection(self)¶
- unsetLocale(self)¶
- update(self)¶
- update(self, a0: QRect) None
- update(self, a0: QRegion) None
- update(self, ax: int, ay: int, aw: int, ah: int) None
- updateGeometry(self)¶
- updateMicroFocus(self)¶
- visibleRegion(self) QRegion¶
- winId(self) PyQt5.sip.voidptr¶
- windowFlags(self) Qt.WindowFlags¶
- windowIconChanged¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- windowIconTextChanged¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- windowModality(self) Qt.WindowModality¶
- windowState(self) Qt.WindowStates¶
- windowTitleChanged¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- windowType(self) Qt.WindowType¶
- class populse_mia.user_interface.main_window.Project(project_root_folder, new_project)[source]¶
Bases:
objectClass that handles projects and their associated database.
- Parameters:
project_root_folder – project’s path
new_project – project’s object
- __init__(project_root_folder, new_project)[source]¶
Initialization of the project class.
- Parameters:
project_root_folder – project’s path
new_project – project’s object
- add_clinical_tags()[source]¶
Add new clinical tags to the project.
- Returns:
list of clinical tags that were added.
- cleanup_orphan_bricks(bricks=None)[source]¶
Remove orphan bricks and their associated files from the database.
This method performs the following cleanup operations: 1. Removes obsolete brick documents from the brick collection 2. Removes orphaned file documents from both current and initial
collections
Deletes the corresponding physical files from the filesystem
- Parameters:
(str) (bricks) – list of brick IDs to check for orphans. If None, checks all bricks in the database.
- cleanup_orphan_history()[source]¶
Remove orphan histories, their associated bricks, and files from the database.
This method performs three cleanup operations: 1. Removes obsolete history documents from the history collection 2. Removes orphaned brick documents from the brick collection 3. Removes orphaned file documents from both current and initial
collections, along with their corresponding physical files
- cleanup_orphan_nonexisting_files(failed=False)[source]¶
Remove database entries for files that are missing on disk.
- This method:
Retrieves filenames considered orphaned (see get_orphan_nonexisting_files),
Deletes their entries from both current and initial collections,
Attempts a defensive filesystem cleanup if the file still exists.
- Parameters:
(bool) (failed) – Passed through to get_orphan_nonexisting_files to control orphan selection.
- del_clinical_tags()[source]¶
Remove clinical tags from the project’s current and initial collections.
Iterates through predefined clinical tags and removes them from both collections if they exist in the current collection’s field names.
- Return (list):
Clinical tags that were successfully removed.
- files_in_project(files)[source]¶
Extract file/directory names from input that are within the project folder.
Recursively processes the input to find all file paths, handling nested data structures. Only paths within the project directory are included.
- Parameters:
files –
Input that may contain file paths. Can be: - str: A single file path - list/tuple/set: Collection of file paths or
nested structures
dict: Only values are processed, keys are ignored
- Return (set):
Relative file paths that exist within the project folder, with paths normalized and made relative to the project directory
- finished_bricks(engine, pipeline=None, include_done=False)[source]¶
Retrieve and process finished bricks from workflows and pipelines.
This method: 1. Gets finished bricks from workflows and optionally a specific
pipeline
Filters them based on their presence in the Mia database
Updates brick metadata with execution status and outputs
Collects all output files that are within the project directory
- Parameters:
engine – Engine instance for retrieving finished bricks
pipeline – Optional pipeline object to filter specific bricks
include_done – If True, includes all bricks regardless of execution status. If False, only includes “Not Done” bricks.
- Return (dict):
Dictionary containing: - ‘bricks’: Dict mapping brick IDs to their metadata - ‘outputs’: Set of output file paths relative to project
directory
- Contains:
- Private function:
- _update_dict: Merge two dictionaries by updating the first
with the second
- _collect_outputs: Recursively collects file paths from
output values that are within the project directory.
- get_data_history(path)[source]¶
Get the processing history for the given data file.
The history dict contains several elements: - parent_files: set of other data used (directly or indirectly) to
produce the data.
- processes: processing bricks set from each ancestor data which
lead to the given one. Elements are process (brick) UUIDs.
- Parameters:
path – Path to the data file
- Returns:
history (dict)
- getDate()[source]¶
Return the date of creation of the project.
- Return (str):
The date of creation of the project if it’s not Unnamed project, otherwise empty string
- get_finished_bricks_in_pipeline(pipeline)[source]¶
Retrieves a dictionary of finished processes (bricks) from a given pipeline, including nested pipelines, if any.
- Parameters:
Process) (pipeline (Pipeline or) – The pipeline or single process to analyze. If a single process is provided, it will be treated as a minimal pipeline.
- Return (dict):
A dictionary where keys are process UUIDs (brick IDs) and values are dictionaries containing the associated process instances.
- get_finished_bricks_in_workflows(engine)[source]¶
Return finished Soma-Workflow jobs indexed by their brick UUID.
A job is considered successful if its termination status is
"finished_regularly". Any other termination status is treated as a failure. A workflow is marked asfailedif at least one of its jobs did not finish successfully.- Parameters:
engine – Engine providing access to the Soma-Workflow controller.
- Return (dict):
Mapping
brick_uuid -> job_infowherejob_infocontains: -workflow(int): Workflow identifier. -job: Soma-Workflow job instance. -job_id(int): Job identifier. -swf_status(tuple): Raw Soma-Workflow statustuple.
running(bool): True of any job in the workflowis running
failed(bool): True if any job in the workflowfailed.
- getFilter(target_filter)[source]¶
Return a Filter object from its name.
- Parameters:
(str) (target_filter) – Filter name
- Return (Filter):
Filter object corresponding to the given name or None if not found
- getFilterName()[source]¶
Input box to type the name of the filter to save.
- Return (str):
Return the name typed by the user or None if cancelled
- getName()[source]¶
Return the name of the project.
- Return (str):
The name of the project if it’s not Unnamed project, otherwise empty string
- get_orphan_bricks(bricks=None)[source]¶
Identifies orphan bricks and their associated weak files.
- Parameters:
set) (bricks (list or) – A list or set of brick IDs to filter the search. If None, all bricks in the database are considered. Defaults to None.
- Return (tuple):
A tuple containing two sets: - orphan (set): Brick IDs considered orphaned, meaning
they have no valid or existing outputs linked to the current database.
- orphan_weak_files (set): Paths to weak files associated
with orphaned bricks, such as script files or files that no longer exist.
- get_orphan_history()[source]¶
Identifies orphaned history entries, their associated orphan bricks, and weak files.
- Return (tuple):
A tuple containing three sets: - orphan_hist (set): IDs of history entries that are no longer
linked to any current document in the database.
- orphan_bricks (set): IDs of bricks associated with orphaned
history entries.
- orphan_weak_files (set): Paths to weak files (e.g., script
files or non-existent files) linked to orphaned history entries.
- get_orphan_nonexisting_files(failed)[source]¶
Return filenames that are recorded in the database but missing on disk.
A file is considered “orphaned” if: - It does not exist on the filesystem, and - It is not associated with any existing bricks, unless failed is True (in which case brick association is ignored).
- Parameters:
(bool) (failed) – If True, include files even if they are linked to existing bricks. If False, exclude such files.
- Return (set):
A set of filenames from the database that are not found on the filesystem and are not associated with existing bricks.
- getSortedTag()[source]¶
Return the sorted tag of the project.
- Return (str):
Sorted tag of the project if it’s not Unnamed project, otherwise empty string
- getSortOrder()[source]¶
Return the sort order of the project.
- Return (str):
Sort order of the project if it’s not Unnamed project, otherwise empty string
- hasUnsavedModifications()[source]¶
Return if the project has unsaved modifications or not.
- Return (bool):
True if the project has pending modifications, False otherwise
- init_filters()[source]¶
Initializes project filters by loading them from stored JSON files.
This method sets the currentFilter to a default empty filter and populates the filters list with Filter objects created
- loadProperties()[source]¶
Loads the project properties from the ‘properties.yml’ file.
This method reads the project’s YAML properties file and returns its contents as a Python dictionary.
- Return (dict):
A dictionary containing the project properties if successfully loaded, or None if an error occurs.
- redo(table)[source]¶
Redo the last action made by the user on the project.
- Parameters:
(QTableWidget) (table) – The table on which to apply the modifications.
- Actions that can be redone:
add_tag
remove_tags
add_scans
modified_values
modified_visibilities
- Raises:
(ValueError) – If an unknown action type is encountered.
- reput_values(values)[source]¶
Re-put the value objects in the database.
- Parameters:
(list) (values) – List of Value objects
- save_current_filter(custom_filters)[source]¶
Save the current filter.
- Parameters:
custom_filters – The customized filter
- setCurrentFilter(new_filter)[source]¶
Set the current filter of the project.
- Parameters:
new_filter – New Filter object
- setName(name)[source]¶
Set the name of the project if it’s not Unnamed project, otherwise does nothing.
- Parameters:
(str) (name) – New name of the project
- setSortedTag(tag)[source]¶
Set the sorted tag of the project.
- Parameters:
tag – New sorted tag of the project
- setSortOrder(order)[source]¶
Set the sort order of the project.
- Parameters:
order – New sort order of the project (ascending or descending)
- undo(table)[source]¶
Undo the last action made by the user on the project.
- Parameters:
table – Table on which to apply the modifications
- Actions that can be undone:
add_tag
remove_tags
add_scans
modified_values
modified_visibilities
- property unsavedModifications¶
Getter for _unsavedModifications.
- update_db_for_paths(new_path=None)[source]¶
Update database paths when renaming or loading a project.
This method updates path references in the database when a project is renamed or loaded from a different location. It scans the HISTORY and BRICK collections to identify the old project path, then systematically replaces it with the new path.
The method looks for the old path in brick input/output fields and history pipeline XML data. If the old path contains ‘data/derived_data’, the method uses the portion before this segment as the base path.
- Parameters:
(str) (new_path) – The new project path. If not provided, the current project folder path is used.
- Contains:
- Private method:
- _update_json_data: Helper method to update paths in JSON
data structures
- class populse_mia.user_interface.main_window.SavedProjects[source]¶
Bases:
objectHandles all saved projects in the software.
- - addSavedProject
Adds a new saved project.
- - loadSavedProjects
Loads saved projects from ‘saved_projects.yml’.
- - removeSavedProject
Removes a project from the config file.
- - saveSavedProjects
Saves projects to ‘saved_projects.yml’.
- addSavedProject(newPath)[source]¶
Adds a project path or moves it to the front if it exists.
- Parameters:
(str) (newPath) – Path of the new project.
- Return (list):
Updated project paths list.
- loadSavedProjects()[source]¶
Loads saved projects from ‘saved_projects.yml’, or creates a default file if missing.
- Return (dict):
Loaded project paths.
- class populse_mia.user_interface.main_window.Config(properties_path=None)[source]¶
Bases:
objectObject that handles the configuration of the software
Contains:
Methods:
_configure_matlab_only: Configures MATLAB without SPM
_configure_matlab_spm: Configures SPM and MATLAB
_configure_mcr_only: Configures MCR without SPM
_configure_standalone_spm: Configures standalone SPM and MCR
_disable_matlab_spm: Disables all MATLAB and SPM configurations
get_admin_hash: Get the value of the hash of the admin password
get_afni_path: Returns the path of AFNI
get_ants_path: Returns the path of ANTS
getBackgroundColor: Get background color
get_capsul_config: Get CAPSUL config dictionary
get_capsul_engine: Get a global CapsulEngine object used for all operations in MIA application
getChainCursors: Returns if the “chain cursors” checkbox of the mini-viewer is activated
get_freesurfer_setup: Get freesurfer path
get_fsl_config: Returns the path of the FSL config file
get_mainwindow_maximized: Get the maximized (full-screen) flag
get_mainwindow_size: Get the main window size
get_matlab_command: Returns Matlab command
get_matlab_path: Returns the path of Matlab’s executable
get_matlab_standalone_path: Returns the path of Matlab Compiler Runtime
get_max_projects: Returns the maximum number of projects displayed in the “Saved projects” menu
get_max_thumbnails: Get max thumbnails number at the data browser bottom
get_mri_conv_path: Returns the MRIManager.jar path
get_mrtrix_path: Returns mrtrix path
getNbAllSlicesMax: Returns the maximum number of slices to display in the mini viewer
get_opened_projects: Returns the opened projects
get_projects_save_path: Returns the folder where the projects are saved
get_properties_path: Returns the software’s properties path
get_referential: Returns boolean to indicate DataViewer referential
get_resources_path: Get the resources path
getShowAllSlices: Returns if the “show all slices” checkbox of the mini viewer is activated
getSourceImageDir: Get the source directory for project images
get_spm_path: Returns the path of SPM12 (license version)
get_spm_standalone_path: Returns the path of SPM12 (standalone version)
getTextColor: Return the text color
getThumbnailTag: Returns the tag that is displayed in the mini viewer
get_use_afni: Returns the value of “use afni” checkbox in the preferences
get_use_ants: Returns the value of “use ants” checkbox in the preferences
get_use_clinical: Returns the value of “clinical mode” checkbox in the preferences
get_use_freesurfer: Returns the value of “use freesurfer” checkbox in the preferences
get_use_fsl: Returns the value of “use fsl” checkbox in the preferences
get_use_matlab: Returns the value of “use matlab” checkbox in the preferences
get_use_matlab_standalone: Returns the value of “use matlab standalone” checkbox in the preferences
get_use_mrtrix: Returns the value of “use mrtrix” checkbox in the preferences
get_user_level: Get the user level in the Capsul config
get_user_mode: Returns the value of “user mode” checkbox in the preferences
get_use_spm: Returns the value of “use spm” checkbox in the preferences
get_use_spm_standalone: Returns the value of “use spm standalone” checkbox in the preferences
getViewerConfig: Returns the DataViewer configuration (neuro or radio), by default neuro
getViewerFramerate: Returns the DataViewer framerate for automatic time running images
isAutoSave: Checks if auto-save mode is activated
isControlV1: Checks if the selected display of the controller is of V1 type
isRadioView: Checks if miniviewer in radiological orientation (if not, then it is in neurological orientation)
loadConfig: Reads the config in the config.yml file
saveConfig: Saves the config to the config.yml file
set_admin_hash: Set the password hash
set_afni_path: Set the path of the AFNI
set_ants_path: Set the path of the ANTS
setAutoSave: Sets the auto-save mode
setBackgroundColor: Sets the background color
set_capsul_config: Set CAPSUL configuration dict into MIA config
setChainCursors: Set the “chain cursors” checkbox of the mini viewer
set_clinical_mode: Set the value of “clinical mode” in the preferences
setControlV1: Set controller display mode (True if V1)
set_freesurfer_setup: Set freesurfer path
set_fsl_config: Set the path of the FSL config file
set_mainwindow_maximized: Set the maximized (fullscreen) flag
set_mainwindow_size: Set main window size
set_matlab_path: Set the path of Matlab’s executable
set_matlab_standalone_path: Set the path of Matlab Compiler Runtime
set_max_projects: Set the maximum number of projects displayed in the “Saved projects” menu
set_max_thumbnails: Set max thumbnails number at the data browser bottom
set_mri_conv_path: Set the MRIManager.jar path
set_mrtrix_path: Set the path of mrtrix
setNbAllSlicesMax: Set the maximum number of slices to display in the mini viewer
set_opened_projects: Set the opened projects
set_projects_save_path: Set the folder where the projects are saved
set_radioView: Set the orientation in miniviewer (True for radiological, False for neurological orientation)
set_referential: Set the DataViewer referential
set_resources_path: Set the resources path
setShowAllSlices: Set the “show all slices” checkbox of the mini viewer
setSourceImageDir: Set the source directory for project images
set_spm_path: Set the path of SPM12 (license version)
set_spm_standalone_path: Set the path of SPM12 (standalone version)
setTextColor: Set the text color
setThumbnailTag: Set the tag that is displayed in the mini viewer
set_use_afni: Set the value of “use afni” checkbox in the preferences
set_use_ants: Set the value of “use ants” checkbox in the preferences
set_use_freesurfer: Set the value of “use freesurfer” checkbox in the preferences
set_use_fsl: Set the value of “use fsl” checkbox in the preferences
set_use_matlab: Set the value of “use matlab” checkbox in the preferences
set_use_matlab_standalone: Set the value of “use matlab standalone” checkbox in the preferences
set_use_mrtrix: Set the value of “use mrtrix” checkbox in the preferences
set_user_mode: Set the value of “user mode” checkbox in the preferences
set_use_spm: Set the value of “use spm” checkbox in the preferences
set_use_spm_standalone: Set the value of “use spm standalone” checkbox in the preferences
setViewerConfig: Set the Viewer configuration neuro or radio
setViewerFramerate: Set the Viewer frame rate for automatic running time images
update_capsul_config: Update a global CapsulEngine object used for all operations in MIA application
- capsul_engine = None¶
- __init__(properties_path=None)[source]¶
Initialization of the Config class
- Parameters:
properties_path – (str) If provided, the configuration file will be loaded / saved from the given directory. Otherwise, the regular heuristics will be used to determine the config path. This option allows to use an alternative config directory (for tests for instance).
- _configure_matlab_only(matlab_path: str) None[source]¶
Configures MATLAB without SPM, ensuring that only MATLAB is used.
- Parameters:
matlab_path – (str) The directory path of the MATLAB installation.
- _configure_matlab_spm(spm_dir, matlab_path)[source]¶
Configures SPM to use the specified SPM directory with a MATLAB installation.
- Parameters:
spm_dir – (str) The directory path of the SPM installation.
matlab_path – (str) The directory path of the MATLAB installation.
- _configure_mcr_only(mcr_dir: str) None[source]¶
Configures MATLAB Compiler Runtime (MCR) without SPM, ensuring that only MCR is used.
- Parameters:
mcr_dir – (str) The directory path of the MATLAB Compiler Runtime (MCR).
- _configure_standalone_spm(spm_dir, mcr_dir)[source]¶
Configures standalone SPM to use the specified SPM and MATLAB Compiler Runtime (MCR) directories.
- Parameters:
spm_dir – (str) The directory path of the standalone SPM installation.
mcr_dir – (str) The directory path of the MATLAB Compiler Runtime (MCR).
- _disable_matlab_spm() None[source]¶
Disables all MATLAB and SPM configurations, ensuring that neither MATLAB nor SPM is used.
- get_admin_hash()[source]¶
Retrieves the hashed admin password from the configuration.
- Returns:
The hashed admin password if found in config, False if not present in config.
- getBackgroundColor()[source]¶
Get background color.
- Returns:
(str) Background color, or “” if unknown.
- get_capsul_config(sync_from_engine=True)[source]¶
Retrieve and construct the Capsul configuration dictionary.
This function builds a configuration dictionary for Capsul, incorporating settings for various neuroimaging tools and processing engines. It manages configurations for tools like SPM, FSL, FreeSurfer, MATLAB, AFNI, ANTs, and MRTrix.
The function first retrieves local settings for each tool from the Mia preferences, then constructs the appropriate configuration structure. If requested, it can synchronize the configuration with the current Capsul engine state.
- Parameters:
sync_from_engine – (bool) If True, synchronizes the configuration with the current Capsul engine settings after building the base configuration.
- Returns:
(dict) A nested dictionary containing the complete Capsul configuration, structured with the following main sections:
engine_modules: List of available processing modulesengine: Contains global and environment-specific settings, as well as configurations specific to certain tools (SPM, FSL, etc.)
- Private functions:
_configure_spm: Configure SPM settings.
_configure_tool: Configure various neuroimaging settings (e.g. ‘fsl’, ‘afni’, etc.)
- static get_capsul_engine()[source]¶
Get or create a global CapsulEngine singleton for Mia application operations.
The engine is created only once when first needed (lazy initialization). Subsequent calls return the same instance.
- Returns:
(CapsulEngine) The global CapsulEngine instance.
- getChainCursors()[source]¶
Get the value of the checkbox ‘chain cursor’ in miniviewer.
- Returns:
(bool) Value of the checkbox.
- get_freesurfer_setup()[source]¶
Get the freesurfer path.
- Returns:
(str) Path to freesurfer, or “” if unknown.
- get_fsl_config()[source]¶
Get the FSL config file path.
- Returns:
(str) Path to the fsl/etc/fslconf/fsl.sh file.
- get_mainwindow_maximized()[source]¶
Get the maximized (fullscreen) flag.
- Returns:
(bool) Maximized (fullscreen) flag.
- get_matlab_command()[source]¶
Retrieves the appropriate Matlab command based on the configuration.
- Returns:
(str) The Matlab executable path or None if no path is specified.
- get_matlab_standalone_path()[source]¶
Get the path to matlab compiler runtime.
- Returns:
(str) A path.
- get_max_projects()[source]¶
Retrieves the maximum number of projects displayed in the “Saved projects” menu.
- Returns:
(int) The maximum number of projects. Defaults to 5 if not specified.
- get_max_thumbnails()[source]¶
Retrieves the maximum number of thumbnails displayed in the mini-viewer at the bottom of the data browser.
- Returns:
(int) The maximum number of thumbnails. Defaults to 5 if not specified.
- getNbAllSlicesMax()[source]¶
Get number the maximum number of slices to display in the miniviewer.
- Returns:
(int) Maximum number of slices to display in miniviewer.
- get_properties_path()[source]¶
Retrieves the path to the folder containing the “processes” and “properties” directories of Mia.
The properties path is defined in the configuration_path.yml file, located in ~/.populse_mia.
In user mode, the path is retrieved from the properties_user_path parameter.
In developer mode, the path is retrieved from the properties_dev_path parameter.
If outdated parameters (mia_path, mia_user_path) are found, they are automatically updated in the configuration file.
- Returns:
(str) The absolute path to the properties folder.
- get_referential()[source]¶
Retrieves the chosen referential from the anatomist_2 data viewer.
- Returns:
(str) “0” for World Coordinates, “1” for Image ref.
- getShowAllSlices()[source]¶
Get whether the show_all_slices parameters was enabled or not in the miniviewer.
- Returns:
(bool) True if the show_all_slices parameters was enabled.
- get_spm_standalone_path()[source]¶
Get the path to the SPM12 standalone version.
- Returns:
(str) A path.
- getThumbnailTag()[source]¶
Get the tag of the thumbnail displayed in the miniviewer.
- Returns:
(str) The tag of the thumbnail displayed in miniviewer.
- get_use_afni()[source]¶
Get the value of “use afni” checkbox in the preferences.
- Returns:
(bool) The value of “use afni” checkbox.
- get_use_ants()[source]¶
Get the value of “use ants” checkbox in the preferences.
- Returns:
(bool) The value of “use ants” checkbox.
- get_use_clinical()[source]¶
Get the clinical mode in the preferences.
- Returns:
(bool) The clinical mode.
- get_use_freesurfer()[source]¶
Get the value of “use freesurfer” checkbox in the preferences.
- Returns:
(bool) The value of “use freesurfer” checkbox.
- get_use_fsl()[source]¶
Get the value of “use fsl” checkbox in the preferences.
- Returns:
(bool) The value of “use fsl” checkbox.
- get_use_matlab()[source]¶
Get the value of “use matlab” checkbox in the preferences.
- Returns:
(bool) The value of “use matlab” checkbox.
- get_use_matlab_standalone()[source]¶
Get the value of “use matlab standalone” checkbox in the preferences.
- Returns:
(bool) The value of “use matlab standalone” checkbox.
- get_use_mrtrix()[source]¶
Get the value of “use mrtrix” checkbox in the preferences.
- Returns:
(bool) The value of “use mrtrix” checkbox.
- get_user_level()[source]¶
Get the user level in the Capsul config.
- Returns:
(int) The user level in the Capsul config.
- get_user_mode()[source]¶
Get if user mode is disabled or enabled in the preferences.
- Returns:
(bool) If True, the user mode is enabled.
- get_use_spm()[source]¶
Get the value of “use spm” checkbox in the preferences.
- Returns:
(bool) The value of “use spm” checkbox.
- get_use_spm_standalone()[source]¶
Get the value of “use spm standalone” checkbox in the preferences.
- Returns:
(bool) The value of “use spm standalone” checkbox.
- getViewerConfig()[source]¶
Get the viewer config “neuro” or “radio”, “neuro” by default.
- Returns:
(str) The viewer config (“neuro” or “radio”).
- getViewerFramerate()[source]¶
Get the Viewer framerate.
- Returns:
(str) The Viewer framerat (ex. “5”).
- isAutoSave()[source]¶
Get if the auto-save mode is enabled or not.
- Returns:
(bool) If True, auto-save mode is enabled.
- isControlV1()[source]¶
Gets whether the controller display is of type V1.
- Returns:
(bool) If True, V1 controller display.
- isRadioView()[source]¶
Get if the display in miniviewer is in radiological orientation.
- Returns:
(bool) If True, radiological orientation, otherwise neurological orientation.
- loadConfig()[source]¶
Read the config from config.yml file.
Attempts to read an encrypted YAML configuration file from the properties directory, decrypt it using Fernet encryption, and parse it as YAML.
- Returns:
(dict) Parsed configuration from the YAML file. Returns empty dict if parsing fails.
- saveConfig()[source]¶
Save the current parameters in the config.yml file.
Encrypts and writes the current configuration (self.config) to config.yml using Fernet encryption. Creates the necessary directory structure if it doesn’t exist. After saving, updates the capsul configuration.
- setBackgroundColor(color)[source]¶
Set background color and save configuration.
- Parameters:
color – Color string (‘Black’, ‘Blue’, ‘Green’, ‘Grey’, ‘Orange’, ‘Red’, ‘Yellow’, ‘White’)
- set_capsul_config(capsul_config_dict)[source]¶
Update Mia configuration with Capsul settings and synchronize tools configuration.
Called after editing Capsul config (via File > Mia preferences > Pipeline tab > Edit CAPSUL config) to synchronize Capsul settings with Mia preferences. Configures various neuroimaging tools (AFNI, ANTs, FSL, etc.) based on the Capsul engine configuration.
- Parameters:
capsul_config_dict – Dictionary containing Capsul configuration.
Structure of capsul_config_dict:
{ 'engine': { 'environment_name': {...configuration...} }, 'engine_modules': [...] }
- Private function:
_get_module_config: Extracts module configuration from the global Capsul configuration.
- setChainCursors(chain_cursors)[source]¶
Set the value of the checkbox ‘chain cursor’ in the mini viewer.
- Parameters:
chain_cursors – A boolean.
- set_clinical_mode(clinical_mode)[source]¶
Enable or disable clinical mode.
- Parameters:
clinical_mode – A boolean.
- setControlV1(controlV1)[source]¶
Set controller display mode (True if V1).
- Parameters:
controlV1 – A boolean.
- set_freesurfer_setup(path)[source]¶
Set the freesurfer config file.
- Parameters:
path – (str) Path to freesurfer/FreeSurferEnv.sh.
- set_fsl_config(path)[source]¶
Set the FSL config file.
- Parameters:
path – (str) Path to fsl/etc/fslconf/fsl.sh.
- set_mainwindow_maximized(enabled)[source]¶
Set the maximized (full-screen) flag.
- Parameters:
enabled – A boolean.
- set_matlab_path(path)[source]¶
Set the path of Matlab’s executable.
- Parameters:
path – (str) A path.
- set_matlab_standalone_path(path)[source]¶
Set the path of Matlab Compiler Runtime.
- Parameters:
path – (str) A path.
- set_max_projects(nb_max_projects)[source]¶
Set the maximum number of projects displayed in the “Saved projects” menu.
- Parameters:
nb_max_projects – An integer.
- set_max_thumbnails(nb_max_thumbnails)[source]¶
Set max thumbnails number at the data browser bottom.
- Parameters:
nb_max_thumbnails – An integer.
- setNbAllSlicesMax(nb_slices_max)[source]¶
Set the number of slices to display in the mini-viewer.
- Parameters:
nb_slices_max – (int) Maximum number of slices to display.
- set_opened_projects(new_projects)[source]¶
Set the list of opened projects and saves the modification.
- Parameters:
new_projects – (list[str]) A list of paths.
- set_projects_save_path(path)[source]¶
Set the folder where the projects are saved.
- Parameters:
path – (str) A path.
- set_radioView(radio_view)[source]¶
Set the radiological / neurological orientation in mini viewer.
True for radiological
False for neurological
- Parameters:
radio_view – A boolean.
- set_referential(ref)[source]¶
Set the referential to “image Ref” or “World Coordinates” in anatomist_2 data viewer.
- Parameters:
ref – (str) “0” for World Coordinates, “1” for Image Ref.
- setShowAllSlices(show_all_slices)[source]¶
Set the show_all_slides setting in miniviewer.
- Parameters:
show_all_slices – A boolean.
- setSourceImageDir(source_image_dir)[source]¶
Set the source directory for project images.
- Parameters:
source_image_dir – (str) A path.
- set_spm_standalone_path(path)[source]¶
Set the path of SPM (standalone version).
- Parameters:
path – (str) A path.
- setTextColor(color)[source]¶
Set text color and save configuration.
- Parameters:
color – Color string (‘Black’, ‘Blue’, ‘Green’, ‘Grey’, ‘Orange’, ‘Red’, ‘Yellow’, ‘White’)
- setThumbnailTag(thumbnail_tag)[source]¶
Set the tag that is displayed in the mini-viewer.
- Parameters:
thumbnail_tag – A string.
- set_use_afni(use_afni)[source]¶
Set the value of “use_afni” checkbox in the preferences.
- Parameters:
use_afni – A boolean.
- set_use_ants(use_ants)[source]¶
Set the value of “use_ants” checkbox in the preferences.
- Parameters:
use_ants – A boolean.
- set_use_freesurfer(use_freesurfer)[source]¶
Set the value of “use_freesurfer” checkbox in the preferences.
- Parameters:
use_freesurfer – A boolean.
- set_use_fsl(use_fsl)[source]¶
Set the value of “use_fsl” checkbox in the preferences.
- Parameters:
use_fsl – A boolean.
- set_use_matlab(use_matlab)[source]¶
Set the value of “use matlab” checkbox in the preferences.
- Parameters:
use_matlab – A boolean.
- set_use_matlab_standalone(use_matlab_standalone)[source]¶
Set the value of “use_matlab_standalone” checkbox in the preferences.
- Parameters:
use_matlab – A boolean.
- set_use_mrtrix(use_mrtrix)[source]¶
Set the value of “use_mrtrix” checkbox in the preferences.
- Parameters:
use_mrtrix – A boolean.
- set_use_spm(use_spm)[source]¶
Set the value of “use spm” checkbox in the preferences.
- Parameters:
use_spm – A boolean.
- set_use_spm_standalone(use_spm_standalone)[source]¶
Set the value of “use spm standalone” checkbox in the preferences.
- Parameters:
use_spm_standalone – A boolean.
- setViewerConfig(config_NeuRad)[source]¶
sets user’s configuration neuro or radio for data_viewer.
neuro: neurological
radio: radiological
- Parameters:
config_NeuRad – A string.
- setViewerFramerate(im_sec)[source]¶
sets user’s framerate for data_viewer.
- Parameters:
im_sec – (int) Number of images per second.
- update_capsul_config()[source]¶
Updates the global CapsulEngine object used for all operations in the Mia application.
The CapsulEngine is created once when needed and updated each time the configuration is saved. This method ensures that all necessary engine modules are loaded and configurations are properly imported from the saved settings.
- Returns:
(capsul.engine.CapsulEngine) The updated CapsulEngine object, or None if the engine is not initialized.
- class populse_mia.user_interface.main_window.DataBrowser(project, main_window)[source]¶
Bases:
QWidgetWidget that manages and displays the contents of the Data Browser tab.
The Data Browser provides an interface for viewing, filtering, tagging, and sending documents to the pipeline manager. It integrates tools for advanced search, tag management, and visual inspection of loaded data.
- __init__(project, main_window)[source]¶
Initialization of the data_browser class.
- Parameters:
project – Current project in the software
main_window – Main window of the software
- add_tag_infos(new_tag_name, new_default_value, tag_type, new_tag_description, new_tag_unit)[source]¶
Add a new tag to both current and initial database collections.
This method creates a new tag field in the database schema and populates it with default values for all existing scans. The operation is tracked in the project’s undo/redo history.
- Parameters:
(str) (new_tag_unit) – Name of the new tag to create
new_default_value – Default value to assign to all existing scans
(str) – Data type of the tag (e.g., FIELD_TYPE_STRING, FIELD_TYPE_FLOAT)
(str) – Human-readable description of the tag
(str) – Unit of measurement for the tag value
Note
Marks the project as having unsaved modifications
Adds the operation to the undo history
Updates the UI table with the new column
- add_tag_pop_up()[source]¶
Display a popup window for adding a new tag to the project.
This method initializes and shows a PopUpAddTag dialog, allowing the user to add a new tag to the current project. The popup is modal and tied to the current project context.
- clone_tag_infos(tag_to_clone, new_tag_name)[source]¶
Clone a tag and its associated data, creating a new tag with the same attributes and values.
This method clones the specified tag, including its schema and data, into a new tag. The new tag is added to both the current and initial collections, and all existing values for the original tag are copied to the new tag. The operation is recorded in the project’s undo history.
- Parameters:
(str) (new_tag_name) – Name of the tag to clone
(str) –
Name of the new tag to create
- Notes:
The new tag is added to the database schema and data for both COLLECTION_CURRENT amd COLLECTION_INITIAL collections.
The project’s unsaved modifications flag is set to True.
The operation is recorded in the project’s undo history.
- connect_actions()[source]¶
Connect UI actions to their corresponding methods.
Binds each action’s triggered signal to the appropriate slot method, enabling interactive functionality for tag management and filter operations.
- move_splitter()[source]¶
Connect the mini viewer if the splitter is not at its minimum position.
Checks whether the bottom pane of the vertical splitter is at its minimum height. If it’s larger than the minimum, connects the mini viewer.
- open_filter()[source]¶
Display a dialog for selecting and opening a saved project filter.
Creates and shows a PopUpSelectFilter dialog, allowing the user to choose from previously saved filters associated with the current project. The dialog is stored as an instance attribute to maintain a reference during its lifetime.
- open_filter_infos()[source]¶
Apply the current project filter to the data table.
Opens the advanced search interface if the filter contains exclusion criteria (nots), updates the search bar text, and refreshes the visualized scans to match the filtered document collection.
- The method:
Retrieves documents from the current collection
Updates scans_to_visualize and scans_to_search
Applies the filter’s search bar text
Shows advanced search interface if exclusion filters exist
- remove_tag_infos(tag_names_to_remove)[source]¶
Remove specified tags from the database and update the UI.
This method removes tags from both the current and initial collections, preserving tag attributes and values in the undo history. The table display is updated to reflect the changes.
- Parameters:
tag_names_to_remove – Iterable of tag names (str) to remove from the database and table display.
- Side Effects:
Marks project as having unsaved modifications
Adds removal operation to undo history
Clears redo history
Removes columns from table display
Temporarily disconnects and reconnects table selection signal
- remove_tag_pop_up()[source]¶
Display a modal dialog for removing user tags from the project.
Creates and shows a PopUpRemoveTag instance, allowing the user to select and remove tags associated with the current project.
- reset_search_bar()[source]¶
Clear the search bar input field.
This method resets the search bar to an empty state by clearing any existing text content.
- search_str(str_search)[source]¶
Search and filter documents in the table based on a search string.
Updates the table’s visualized documents based on the search criteria. An empty string shows all searchable scans. The special value NOT_DEFINED_VALUE filters for documents with undefined field values.
- Parameters:
str_search – The search string to filter documents. Empty string returns all searchable scans. NOT_DEFINED_VALUE returns scans with undefined values.
- send_documents_to_pipeline()[source]¶
Display a popup dialog for sending filtered scans to the Pipeline Manager.
Retrieves the currently filtered scans from the table data and presents them in a selection popup, allowing the user to confirm which scans to send to the pipeline.
The popup is shown modally and references the main window as its parent.
- show_clone_tag_popup()[source]¶
Display a popup dialog for cloning a tag.
This method initializes and shows a popup dialog (PopUpCloneTag) to allow the user to clone a tag within the current project context.
The popup is stored as an instance variable for later reference if needed.
- toggle_advanced_search()[source]¶
Toggle the visibility of the advanced search interface.
If the advanced search is hidden, it resets and displays the search interface, updating the scans list to the current visualized scans. If the advanced search is visible, it hides the interface, resets the search state, and restores the original scans list to the data browser.
This method ensures the UI and data state are synchronized with the visibility of the advanced search.
- update_database(database)[source]¶
Update the project database and reset UI state.
This method propagates the database instance to all components that need it and resets UI elements to their default state. It’s called during project lifecycle events (new, open, save as).
- Parameters:
database – The new Database instance to use across the application.
- class populse_mia.user_interface.main_window.DataViewerTab(main_window)[source]¶
Bases:
QWidgetA flexible and extensible widget for managing data viewers in a GUI application.
This widget provides a dynamic interface for loading and switching between different data viewers. Key features include: - Automatic discovery of viewers in the data_viewer directory - Graceful handling of viewer import failures - Ability to dynamically add new viewers - Centralized document and project management across viewers
- __init__(main_window)[source]¶
Initialize the DataViewerTab with a reference to the main window.
- Parameters:
(Qt.QMainWindow) (main_window) – The main application window providing context and potential shared resources.
- activate_viewer(viewer_name)[source]¶
Activate a specific viewer by name.
- Parameters:
(str) (viewer_name) – Name of the viewer to activate.
- change_viewer()[source]¶
Handle viewer change event triggered by the combobox.
Retrieves the selected viewer, activates it, and ensures that the current project and documents are set.
- clear()[source]¶
Clean up and close all loaded viewers.
Called before closing the application to ensure proper resource management.
- closeEvent(event)[source]¶
Override close event to ensure proper cleanup.
- Parameters:
(QCloseEvent) (event) – Close event triggered by the window system.
- current_viewer()[source]¶
Retrieve the name of the currently active viewer.
- Return (str):
Name of the current viewer, either from the current viewer tracking or the combobox selection.
- class populse_mia.user_interface.main_window.PipelineManagerTab(project, scan_list, main_window)[source]¶
Bases:
QWidgetWidget that handles the Pipeline Manager tab.
- item_library_clicked¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- __init__(project, scan_list, main_window)[source]¶
Initialize the Pipeline Manager tab.
The Pipeline Manager provides a comprehensive interface for creating, editing, and executing data processing pipelines. It integrates process libraries, pipeline editors, node controllers, and iteration tables to manage complex data analysis workflows.
- Parameters:
project – The current project instance containing database and configuration
scan_list – List of selected database files to process. If None or empty, defaults to all documents in the current collection
main_window – Main application window instance for UI integration
- _register_node_io_in_database(job, node, pipeline_name='', history_id='')[source]¶
Register node input and output values in the database.
This method processes the inputs and outputs of a given node, associates them with a job, and updates the database with the appropriate values. It handles leaf processes, user-defined traits, and completion attributes, ensuring that initialization data is recorded correctly.
- Parameters:
job – Job object containing parameter values and unique identifier (UUID).
node – Node instance (Process, Pipeline, or custom node) to register.
optional) (history_id (str,) – Name of the containing pipeline, if any.
optional) – Database history entry identifier. Defaults to an empty string.
Note
Pipeline and PipelineNode instances are skipped as only leaf processes produce meaningful output data.
- _set_anim_frame()[source]¶
Update the pipeline status action icon with the current animation frame.
This method serves as a callback that synchronizes the animated movie’s current frame with the status action’s icon, creating a smooth animated icon effect in the UI.
Note: This method is typically connected to QMovie’s frameChanged signal to automatically update the icon as the animation progresses.
- _should_register_plug(process, plug_name: str) bool[source]¶
Determine if a plug should be registered in the database.
- Parameters:
process – Process instance
(str) (plug_name) – Name of the plug to check
- Returns:
True if plug should be registered, False otherwise
- add_plug_value_to_database(p_value, brick_id, history_id, node_name, plug_name, full_name, job, trait, inputs, attributes)[source]¶
Add plug value(s) to the database with proper metadata and inheritance.
This method handles adding file-based plug values to a project database, managing inheritance of metadata tags from input files, and resolving ambiguities when multiple parent files exist.
- Parameters:
p_value – The plug value - either a single file path (str) or list of file paths. Can also be special values like “<undefined>” or Undefined.
(str) (full_name) – UUID of the brick in the database.
(str) – UUID of the processing history in the database.
(str) – Name of the processing node.
(str) – Name of the specific plug/parameter.
(str) – Full hierarchical name including parent bricks. Equals node_name if no parent exists.
(Job) (job) – Job object containing the plug, may have inheritance dictionaries.
(Trait) (trait) – Handler for the plug trait or sub-trait for list elements. Used to validate value types (file vs non-file).
(dict) (attributes) – Input parameter values for the process/node.
(dict) – Completion engine attributes to be applied to all outputs.
Notes
Recursively processes list values by calling itself on each element
Only processes file-type traits within the project folder
Handles tag inheritance from parent files using inheritance_dict and auto_inheritance_dict from the job
May prompt user to resolve ambiguous inheritance scenarios
Automatically determines file types based on extensions
Updates both CURRENT and INITIAL database collections
- Raises:
May raise database-related exceptions during document operations.
- ask_iterated_pipeline_plugs(pipeline)[source]¶
Display a configuration dialog for pipeline plug iteration and database connections.
This method opens an interactive dialog that allows users to configure how pipeline plugs (inputs and outputs) should be handled during execution. Users can specify:
Which plugs should be iterated over during pipeline execution
Which input plugs should be connected to database filters
Interactive dependency management (database connection requires iteration)
The dialog presents a grid layout with checkboxes for each available plug:
Iteration checkbox: Mark plug for iteration during execution
Database checkbox: Connect input plug to database filter (inputs only)
- Behavioral constraints:
Database connection automatically enables iteration
Disabling iteration automatically disables database connection
Only file-compatible plugs can connect to database filters
Certain system plugs are excluded from configuration
- Parameters:
pipeline – Pipeline object containing plugs to be configured
- Returns:
- Optional[Tuple[List[str], List[str]]]: A tuple containing:
iterated_plugs: List of plug names marked for iteration
database_plugs: List of plug names connected to database
None if the user cancels the dialog.
- build_iterated_pipeline()[source]¶
Build an iteration pipeline wrapper around the current pipeline.
This method creates a new pipeline that iterates over the current pipeline, allowing batch processing of multiple datasets. The process involves:
Interactive selection of plugs to iterate over and database connections
Preprocessing of list-type plugs with ReduceNode to handle nested lists
Creation of an iterative pipeline using the CAPSUL engine
Addition of Input_Filter nodes for database-connected plugs
Proper linking of database_scans parameter across all filters
The method handles both single processes and full pipelines, converting single processes into single-node pipelines when necessary.
- Returns:
Pipeline or None: The new iteration pipeline if successful, None if aborted
- Raises:
ValueError – If Input_Filter process cannot be found in the library.
Notes
Modifies pipeline completion settings for database plugs
Sets the editor’s iterated flag to True upon successful completion
Handles context name parsing for proper iteration naming
- check_requirements(environment='global')[source]¶
Check and return the configuration of a pipeline based on its requirements.
This method iterates through the nodes in the pipeline, gathers their requirements, and determines the appropriate configuration for each node in the specified environment. It uses the settings from the study configuration engine to select configurations that match the requirements.
- Parameters:
(str) (environment) – The target environment for checking configurations. Defaults to “global”.
- Return (dict):
A dictionary mapping each pipeline node to its selected configuration.
- cleanup_older_init()[source]¶
Clean up data browser state and remove orphaned files.
- This method performs the following cleanup operations:
Removes non-existent entries from the data browser for each brick
Cleans up orphaned non-existing files from the project
Clears the brick and node lists
Updates the data browser table display
Note: The table update is performed asynchronously using QtThreadCall to ensure UI responsiveness.
- complete_pipeline_parameters(pipeline=None)[source]¶
Complete pipeline parameters using Capsul’s completion engine.
This method utilizes Capsul’s completion engine to automatically populate the parameters of a pipeline based on a set of attributes. These attributes can be retrieved from an associated database. If no pipeline is specified, the current pipeline or process is used.
- Parameters:
(Pipeline) (pipeline) – The pipeline object to be completed. If not provided, the method retrieves the current pipeline or process.
Notes: The completion process relies on Capsul’s ProcessCompletionEngine to automatically determine appropriate parameter values.
- controller_value_changed(signal_list)[source]¶
Update history when a node or plug value changes.
This method processes change signals from the pipeline editor and maintains an undo history for user actions. It handles two types of changes:
- Node name updates: Updates the node name and refreshes the
pipeline view while preserving the current view state.
- Plug value updates: Records parameter changes while filtering
out protected parameters, empty values, and system-generated changes to avoid cluttering the undo history.
- Parameters:
signal_list –
- A list containing change information with the
first element being the change type (“node_name” or “plug_value”), followed by context-specific data:
- For “node_name”: [“node_name”, ProcessNode_object,
new_node_name, old_node_name]
- For “plug_value”: [“plug_value”, node_name, old_value,
plug_name, plug_type, new_value]]
- displayNodeParameters(node_name, process)[source]¶
Display the node controller interface for the specified node.
This method configures and shows the node parameter interface when a user clicks on a node in the pipeline editor. It updates the scroll area widget to display the node controller with the current pipeline context.
- Parameters:
node_name – The name/identifier of the selected node.
process – The process instance associated with the selected node.
- finish_execution()[source]¶
Handle pipeline execution completion and update UI state.
This callback is invoked after a pipeline execution completes, whether successfully or with errors. The method performs comprehensive cleanup and user feedback operations:
Disables pipeline control actions during cleanup
Disconnects progress worker signals to prevent memory leaks
Checks execution status and handles WorkflowExecutionError/RuntimeError
Updates status bar with clear success/failure messages
Sets appropriate visual status icon (green checkmark or red cross)
Cleans up progress indicators and re-enables pipeline actions
Updates node controller parameters for next execution
The method ensures proper cleanup regardless of execution outcome and provides comprehensive user feedback through status messages and visual indicators.
- Raises:
WorkflowExecutionError: When pipeline execution fails RuntimeError: When execution is aborted before running
- garbage_collect()[source]¶
Clean up obsolete data and maintain database consistency.
- This method performs comprehensive cleanup operations including:
Processing finished pipeline executions with error protection
Removing orphaned files and historical data entries
Refreshing the data browser table display
Resetting pipeline editor initialization state if applicable
Updating UI button states to reflect current system status
The cleanup operations ensure the application remains performant and maintains data integrity across user sessions.
- get_capsul_engine()[source]¶
Retrieve and configure a Capsul engine from the pipeline editor.
This method obtains a CapsulEngine object from the current pipeline editor tabs and configures it using the Mia configuration settings.
- Return (CapsulEngine):
A configured Capsul engine instance ready for pipeline execution, with settings applied from the Mia config object.
- get_pipeline_or_process(pipeline=None)[source]¶
Get the pipeline or its single unconnected process node.
When a pipeline contains only one process node with no connections, this method returns the process directly instead of the pipeline wrapper. This simplifies GUI workflows where single processes can act as pipelines.
- Parameters:
(Pipeline) (pipeline) – Optional pipeline to evaluate. If None, uses the currently selected pipeline from the editor GUI.
- Return (Pipeline | Process):
The process node if pipeline contains a single unconnected process, otherwise the pipeline itself.
- get_missing_mandatory_parameters()[source]¶
Find missing mandatory parameters across all pipeline nodes.
Checks each node in the pipeline for missing mandatory parameters, accounting for workflow job parameter overrides and temporary values.
- Return (list[str]):
Parameter names that are missing, formatted as either ‘parameter_name’ for pipeline root or ‘node.parameter_name’ for other nodes.
Note
Parameters with non-null values in the workflow job dictionary are not considered missing, even if undefined at the node level.
- initialize()[source]¶
Initialize the pipeline after cleaning up any previous initialization.
- This method performs the following operations:
Sets a wait cursor to indicate processing
Cleans up any previous initialization if needed
Resets internal state variables
Attempts to initialize the pipeline
Updates the UI with the results
Restores the normal cursor
The method handles initialization errors gracefully by logging warnings and updating the status bar with error messages.
- Side Effects:
Modifies cursor appearance during execution
Updates pipeline editor tabs and node parameters
May display error messages in the status bar
Sets self.init_clicked to True upon completion
- init_pipeline(pipeline=None, pipeline_name='')[source]¶
Initialize the current pipeline in the pipeline editor.
- This method:
Retrieves and configures the pipeline or sub-pipeline.
Generates and validates the workflow.
Checks requirements (FSL, AFNI, ANTS, Matlab, MRtrix, SPM).
Verifies that mandatory inputs/outputs are properly set.
Records initialization results in the project database.
Updates the status bar and displays warnings when needed.
- Parameters:
Process) (pipeline (Pipeline,) – The pipeline or process instance to initialize. If None, the main pipeline is retrieved.
(str) (pipeline_name) – The name of the parent pipeline, if applicable.
- Return (bool):
True if the pipeline was successfully initialized, False otherwise.
- layout_view()[source]¶
Initialize the layout and toolbar for the pipeline manager tab.
This method sets up the main diagram editor window, configures the scroll area, builds the toolbar with pipeline actions, and arranges widgets in splitters and layouts for the pipeline editor interface.
- loadParameters()[source]¶
Load pipeline parameters into the current pipeline of the editor.
This method refreshes the pipeline editor by loading the stored parameters and then updates the node controller accordingly.
- loadPipeline()[source]¶
Load a pipeline into the pipeline editor.
This method initializes the pipeline editor with the selected pipeline.
- postprocess_pipeline_execution(pipeline=None)[source]¶
Operations to be performed after a run has been completed.
It can be called either within the run procedure (the user clicks on the “run” button and waits for the results), or after a disconnetion / reconnection of the client app: the user clicks on “run” with distributed/remote execution activated, then closes the client Mia. Processing takes place (possibly remotely) within a soma-workflow server. Then the user runs Mia again, and we have to collect the outputs of runs which happened (finished) while we were disconnected.
Such post-processing includes database indexing of output data, and should take into account not only the current pipeline, but all past runs which have not been postprocessed yet.
When called with a pipeline argument, it only deals with this one.
The method can be called from within a worker run thread, thus has to be thread-safe.
- Parameters:
(Pipeline) (pipeline) – The pipeline to postprocess. If not provided, the method will use self.last_run_pipeline or fetch the currently selected pipeline from the pipeline editor.
- redo()[source]¶
Redo the last undone action on the current pipeline editor
- Supported redoable actions:
add_process
delete_process
export_plug
export_plugs
remove_plug
update_node_name
update_plug_value
add_link
delete_link
- register_completion_attributes(pipeline)[source]¶
Register completion attributes for a given pipeline in the project database.
This method retrieves attribute values from the pipeline’s completion engine and records them in the project database. Only attributes corresponding to existing fields (tags) in the database schema are stored. For each pipeline parameter that resolves to a file path within the project directory, the attributes are associated with both the current and initial collections.
- Parameters:
(Pipeline) (pipeline) – The pipeline whose completion attributes should be registered. The pipeline must provide a completion engin capable of exporting its attributes
- remove_progress()[source]¶
Remove and clean up the progress widget.
Safely removes the progress widget from the UI and frees associated resources. This method handles the complete lifecycle cleanup of the progress widget, nsuring proper Qt object disposal and memory management.
Note
This method is idempotent - it can be safely called multiple times without side effects if the progress widget has already been removed.
- runPipeline()[source]¶
Execute the current pipeline in the pipeline editor.
This method initializes and runs the active pipeline with the following steps:
Initializes the pipeline and validates prerequisites
Sets up pipeline metadata and UI state
Configures soma-workflow connection (if enabled)
Starts pipeline execution with progress tracking
The method handles both local and remote execution via soma-workflow, displays progress animation, and manages UI state during execution.
- saveParameters()[source]¶
Saves the parameters of the currently active pipeline in the pipeline editor.
- savePipeline(skip_overwrite_warning: bool = False)[source]¶
Save the current pipeline in the pipeline editor.
- This method handles three scenarios:
Save to existing file with overwrite confirmation (unless skipped)
Save to existing file without confirmation when warning is skipped
Save as new file when no filename exists or file is in protected directory
- Parameters:
(bool) (skip_overwrite_warning) – If True, skip the overwrite confirmation dialog when saving to an existing file. Defaults to False.
- Side Effects:
Updates the main window status bar with save operation messages
May display a confirmation dialog for file overwriting
Saves the pipeline to disk via pipelineEditorTabs.save_pipeline()
Note
Files in “mia_processes/mia_processes” directory are treated as protected and will trigger a “save as” operation regardless of other conditions.
- save_pipeline_as()[source]¶
Save the current pipeline under a new name via ‘Save As’ dialog.
This method displays a status message during the save operation and provides user feedback based on the save result. The pipeline name in the success message is capitalized and stripped of its file extension for display.
- show_status()[source]¶
Display the execution status window with runtime information.
Opens a new status widget window that shows the last execution run details, including runtime statistics, error messages, and other diagnostic information. The widget is stored as an instance attribute for potential future reference.
- stop_execution()[source]¶
Interrupt pipeline execution gracefully.
This method signals the pipeline to stop its current execution flow. The interruption is handled asynchronously through the progress tracker, allowing any in-flight operations to complete safely before termination.
- undo()[source]¶
Undo the last action performed on the current pipeline editor.
This method reverts the most recent undoable action by popping it from the undo stack and performing the inverse operation. The method handles all reversible operations in the pipeline editor interface.
- Supported undoable actions:
add_process: Remove the added process node
delete_process: Restore the deleted process node with its links
export_plug/export_plugs: Remove the exported pipeline plug(s)
remove_plug: Restore the removed plug(s) and reconnect links
update_node_name: Revert node name change
update_plug_value: Restore previous plug value
add_link: Remove the added connection
delete_link: Restore the deleted connection
The method automatically updates the pipeline state and node parameters after performing the undo operation.
Note
Does nothing if no undoable actions are available in the stack.
- update_inheritance(job, node)[source]¶
Update the inheritance dictionary for a process node in a pipeline execution.
This method manages metadata inheritance by updating a job’s inheritance_dict based on the node’s execution context and the project’s inheritance history. The inheritance dictionary defines relationships between input and output parameters, enabling propagation of database tags and other metadata properties through the pipeline.
- The method follows this precedence order:
Project-specific inheritance history (if matching parameters are found)
Process-level inheritance dictionary (fallback)
- Parameters:
job – Job execution object containing param_dict (parameter name->value mapping) and inheritance_dict (will be updated by this method)
node – Process node being evaluated (ProcessNode or Process object). Used to determine inheritance rules via context_name or name attribute.
- Note: For Pipeline nodes, the method strips the “Pipeline.” prefix
from the context_name to match against inheritance history keys.
- update_node_list(brick=None)[source]¶
Update the node list with unique nodes from workflow jobs.
Iterates through all jobs in the current workflow and adds their associated process nodes to the node list, ensuring no duplicates. Only jobs with a ‘process’ attribute are considered.
- Parameters:
brick – Reserved for future use. Currently unused parameter that could be used for filtering or extending functionality.
Note
This method modifies self.node_list in-place by extending it with new unique nodes. Jobs without a ‘process’ attribute are silently skipped.
- updateProcessLibrary(filename)[source]¶
Update the library of processes when a pipeline is saved.
- This method performs the following operations:
Renames the Pipeline class in the saved file to match the filename
Updates the __init__.py file to include the new import
Refreshes the module in sys.modules if it already exists
Adds the module to the process library
- Parameters:
filename – Path to the pipeline file that has been saved
Note
Only processes saved in the User_processes directory are added to the library.
- update_project(project)[source]¶
Update the project reference across all relevant components.
This method propagates the project instance to all components that require access to project data, ensuring consistency across the application state. It also updates the node controller’s visible tags from the project database.
- Parameters:
project – The current project instance containing application data and database connections.
Note
This method has the side effect of setting ProcessMIA.project as a class attribute, which is required for Mia brick functionality.
- update_scans_list(iteration_list, all_iterations_list)[source]¶
Update the user-selected list of scans based on iteration settings.
This method handles the transition between regular and iterated pipeline modes, updating the scan list accordingly. When iteration mode is enabled, it builds an iterated pipeline and uses the full iterations list. When disabled, it extracts the pipeline from the iteration node and reverts to the original scan list.
- Parameters:
iteration_list – Current list of scans in the iteration table (unused in current implementation)
all_iterations_list – Complete list of all iteration scan lists
- Side Effects:
Updates UI button states
May modify the current pipeline (switch between regular/iterated)
Updates scan lists for both iteration table and pipeline editor
May update node parameters display
Falls back to database scan list if pipeline scan list is empty
- update_user_buttons_states(index=-1)[source]¶
Update the visibility and state of pipeline-related UI actions.
Updates the enabled/disabled state of pipeline actions (Run, Save, Save As) based on the current pipeline state. The method evaluates the pipeline associated with either the specified editor or the current active editor.
- Button states updated:
Run Pipeline: Disabled when pipeline is empty or None
Save Pipeline & Save As: Enabled only when pipeline is not iterated
- Parameters:
(int) (index) – Index of the specific editor to check. If -1 (default), uses the currently active editor.
Note
If the specified editor doesn’t exist or has no scene, the pipeline is treated as None and buttons are disabled accordingly.
- update_user_mode()[source]¶
Update widget/action visibility and functionality based on user mode configuration.
- In user mode:
Disables pipeline saving (process library unavailable)
Disables pipeline overwriting
Disables project deletion
Also synchronizes user level across pipeline editor and node controller components.
- class populse_mia.user_interface.main_window.InstallProcesses(main_window, folder)[source]¶
Bases:
QDialogDialog for installing Python packages from a folder or zip file.
This widget allows users to browse and select a Python package or zip file containing packages, then install them into Populse_MIA.
- process_installed¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- __init__(main_window, folder)[source]¶
Initialize the installation dialog.
- Parameters:
main_window – The main application window
(bool) (folder) – If True, install from folder; if False, install from zip file
- _add_package(proc_dic, module_name)[source]¶
Add a package and its modules to the process tree.
- Parameters:
(dict) (proc_dic) – The process tree dictionary to update.
(str) (module_name) – Name of the module to add.
- Return (dict):
The updated process tree dictionary.
- _change_pattern_in_folder(path, old_pattern, new_pattern)[source]¶
Replace pattern in all Python files within a folder.
- Parameters:
(str) (new_pattern) – Directory path to process.
(str) – Pattern to search for.
(str) – Pattern to replace with.
- _install_new_package(filename, package_name, processes_path)[source]¶
Install a new package.
- Parameters:
(str) (processes_path) – Path to zip file or directory.
(str) – Name of the package to install.
(str) – Target directory for installation.
- _load_process_config(config_path)[source]¶
Load the process configuration from YAML.
- Parameters:
(str) (config_path) – Path to the configuration file.
- Return (dict):
The loaded configuration or empty dict if error.
- _rollback_changes(config_path, original_config, processes_path, package_names, mia_processes_not_found, tmp_folder4MIA)[source]¶
Roll back changes in case of installation failure.
:param : :type : param config_path (str): Path to configuration file. :param : :type : param original_config (dict): Original configuration to restore. :param : :type : param processes_path (str): Path to processes directory. :param : installed. :type : param package_names (list): Names of packages that were being :param : Mia processes backup was made. :type : param mia_processes_not_found (bool): Flag indicating if :param : :type : param tmp_folder4MIA (str): Path to Mia processes backup.
- _show_qmessagebox(message, critical=True)[source]¶
Display an error message box.
- Parameters:
(str) (message) – Message to display
(bool) (critical) – If True, display a critical message box.
- _show_status_message(message)[source]¶
Update status message in the main window.
- Parameters:
(str) (message) – Status message to display
- _update_existing_package(filename, package_name, processes_path)[source]¶
Update an existing package.
- Parameters:
(str) (processes_path) – Path to zip file or directory.
(str) – Name of the package to update.
(str) – Target directory for installation.
- Return (str):
The new package name (with timestamp).
- _validate_input(filename)[source]¶
Validate the input file or directory.
- Parameters:
(str) (filename) – Path to the file or directory.
- Return (bool):
True if valid, False otherwise
- get_filename(folder)[source]¶
Open a file dialog to select the package source.
- Parameters:
(bool) (folder) – If True, opens a directory selection dialog; If False, opens a zip file selection dialog
- install()[source]¶
Install a package from a zip file or a folder.
This method handles the complete installation process: 1. Extracts or copies the package to the processes directory 2. Updates the process dictionary 3. Registers the new package in the configuration
Any exceptions during installation are caught and reported to the user, with automatic rollback of any changes made.
- class populse_mia.user_interface.main_window.PackageLibraryDialog(mia_main_window=None, parent=None)[source]¶
Bases:
QDialogDialog for managing package library configurations.
This dialog allows users to add, remove, and delete packages from the process library. It provides interfaces for installing packages, updating the package tree, and saving configurations.
- signal_save¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- __init__(mia_main_window=None, parent=None)[source]¶
Initialize the PackageLibraryDialog.
- Parameters:
mia_main_window – Reference to the main application window.
(QWidget) (parent) – Parent widget for the dialog.
- _create_button(text, callback)[source]¶
Create a standardized button.
- Parameters:
(str) (text) – Button text.
(callable) (callback) – Function to call when button is clicked.
- Returns (QPushButton):
Configured button.
- _create_install_buttons()[source]¶
Create buttons for installing processes.
- Return (QHBoxLayout):
Layout with install process buttons.
- _create_line_edit()[source]¶
Create and configure the line edit.
- Return QLineEdit:
Configured line edit for package input.
- _create_list_group(title, list_widget, reset_callback)[source]¶
Create a group box for a list with reset functionality.
- Parameters:
(str) (title) – Group box title.
(QListWidget) (list_widget) – List widget to add to group.
(callable) (reset_callback) – Callback for reset button.
- Return (QGroupBox):
Configured group box with list and reset button.
- _create_list_widget()[source]¶
Create a list widget with extended selection mode.
- Return (QListWidget):
Configured list widget.
- _create_main_layout(install_layout, management_layout, user_mode)[source]¶
Create the main layout for the dialog.
- Parameters:
(QHBoxLayout) (management_layout) – Layout for install buttons.
(QHBoxLayout) – Layout for package management buttons.
(bool) (user_mode) – Whether the application is in user mode.
- Return (QHBoxLayout):
Main layout of the dialog.
- _create_package_management_buttons(user_mode)[source]¶
Create buttons for package management.
- Parameters:
(bool) (user_mode) – Whether the application is in user mode.
- Return (QHBoxLayout):
Layout with package management buttons.
- _create_save_cancel_layout()[source]¶
Create layout for save and cancel buttons.
- Return (QHBoxLayout):
Layout with save and cancel buttons.
- _create_status_label()[source]¶
Create and configure the status label.
- Return (QLabel):
Configured status label.
- add_package(module_name, class_name=None, show_error=False, init_package_tree=False)[source]¶
Add a package and its modules to the package tree with comprehensive module and class discovery.
This method recursively discovers and adds packages, subpackages, and their classes to the package tree. It provides flexible options for package initialization and error handling.
- Parameters:
(str) (class_name) – Fully qualified name of the module to add. Example: ‘myproject.processors’
(str) – Specific class name to focus on during package addition. If provided, only this class or its parent packages will be processed.
(bool) (init_package_tree) – Controls error reporting behavior. If True, displays error messages in a QMessageBox. If False, collects errors silently. Defaults to False.
(bool) – If True, reinitializes the entire package tree before adding the module. Defaults to False.
- Return (List[str] | str):
A list of error messages encountered during package addition, or “No package selected!” if no module name is provided.
- add_package_with_text(package_name=False, update_view=True)[source]¶
Add a package to the Package Library.
This method attempts to add a package or module to the library based on the provided package name. It supports adding packages with or without file extensions, and handles various import scenarios.
- Parameters:
False) (package_name (str |) – Name of the package to add. If False (default), uses the text from the line edit widget.
(bool) (update_view) – Whether to update the package list view. Defaults to True.
- delete_package(index=1, to_delete=None, remove=True, loop=False, from_pipeline_manager=False)[source]¶
Delete a package from the library (admin-only functionality).
This method removes the package from the package library tree, updates the __init__.py file, and deletes the package directory and files if they are empty.
- Parameters:
(int) (index) – Recursive index for navigating modules. Defaults to 1.
(str) (to_delete) – The package/brick to delete (e.g., ‘test.Test’). Defaults to None.
(bool) (from_pipeline_manager) – Whether to remove the brick from the package tree. Defaults to True.
(bool) – Whether to delete silently without confirmation. Defaults to False.
(bool) – Whether deletion is initiated from pipeline manager. Defaults to False.
- Return (list[str]):
A list of deleted packages/bricks.(classes).
- delete_package_with_text(package_name='', update_view=True)[source]¶
Delete a package from the line edit’s text.
- Parameters:
(str) (package_name) – The name of the package to delete. Defaults to the text in the line edit.
(bool) (update_view) – Whether to update the QListWidget after deletion. Defaults to True.
- install_processes_pop_up(from_folder=False)[source]¶
Display the install processes pop-up.
- Parameters:
(bool) (from_folder) – Whether the installation is from a folder. Defaults to False.
- static load_config()[source]¶
Loads and returns the configuration from ‘process_config.yml’.
- Return (dict | {}):
The configuration dictionary if successfully loaded, otherwise None in case of an error.
- remove_package(package)[source]¶
Removes a package from the package tree.
This method attempts to remove the specified package from the package library. If the package is not found, a warning message is displayed. The package tree is updated after a successful removal.
- Parameters:
(str) (package) – The fully qualified module name (e.g., ‘nipype.interfaces.spm’).
- Returns (bool):
True if the package was successfully removed, False if the package was not found or no package was provided.
- remove_package_with_text(package_name='', update_view=True, tree_remove=True)[source]¶
Removes the specified package from the package tree and updates the view accordingly.
- Parameters:
(str) (package_name) – The name of the package to remove. If not provided, the package name is taken from the line edit.
(bool) (tree_remove) – Whether to update the QListWidget view after removal. Defaults to True.
(bool) – Whether to remove the package from the tree. Defaults to True.
- reset_action(itemlist, add)[source]¶
Resets a previous package addition or removal action.
- Parameters:
(QListWidget) (itemlist) – The list widget containing items to reset.
(bool) (add) – If True, resets an addition by removing the package if it exists in the configuration. If False, re-adds the package.
- save(close=True)[source]¶
Saves the package library configuration to process_config.yml.
This method updates the package information from the package library tree and writes it to the configuration file. Optionally, it can close the dialog after saving.
- Parameters:
(bool) (close) – If True, closes the dialog after saving. Defaults to True.
- class populse_mia.user_interface.main_window.PopUpDeletedProject(deleted_projects)[source]¶
Bases:
QMessageBoxMessage box that displays a list of deleted, renamed, or moved projects.
This dialog appears when the software starts and detects that previously available projects are no longer accessible at their expected locations.
- class populse_mia.user_interface.main_window.PopUpDeleteProject(main_window)[source]¶
Bases:
QDialogDialog for deleting selected projects.
Allows the user to select and delete one or more projects from the projects directory after confirmation.
- __init__(main_window)[source]¶
Initializes the delete project dialog.
- Parameters:
(QMainWindow) (main_window) – The main application window
- class populse_mia.user_interface.main_window.PopUpNewProject[source]¶
Bases:
QFileDialogDialog for creating a new project.
This dialog is displayed when the user wants to create a new project. It manages file selection and handles the creation process.
- signal_create_project¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- get_filename(file_name_tuple)[source]¶
Process the selected filename and set up project attributes.
- Parameters:
(tuple) (file_name_tuple) – Tuple containing the selected filename(s), obtained from the selectedFiles method
Note
If the file already exists, displays an error message. Otherwise, closes the dialog and emits signal_create_project.
- class populse_mia.user_interface.main_window.PopUpOpenProject[source]¶
Bases:
QFileDialogDialog for opening an existing MIA project.
This dialog allows users to select an existing project directory from the filesystem. It uses the default projects directory as the starting location and emits a signal when a valid project is selected.
- signal_create_project¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- get_filename(file_name_tuple)[source]¶
Process the selected directory and emit signal if valid.
Sets the path, name, and relative_path attributes based on the selected directory. If the directory exists, emits signal_create_project.
- Parameters:
(tuple) (file_name_tuple) – Tuple containing selected directory path(s). Typically obtained from selectedFiles() method.
- class populse_mia.user_interface.main_window.PopUpPreferences(main_window)[source]¶
Bases:
QDialogDialog for changing software preferences.
This class manages the preferences dialog for the software, allowing users to configure various settings related to tools, projects, and appearance.
- signal_preferences_change¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- use_clinical_mode_signal¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- not_use_clinical_mode_signal¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- __init__(main_window)[source]¶
Initialize the preferences dialog.
- Parameters:
main_window – The main window object of the software
- change_admin_psswd(status)[source]¶
Open a dialog to change the admin password with validation checks.
- Parameters:
(str) (status) – Initial status message to display in the dialog.
- control_checkbox_toggled()[source]¶
Check if the user really wants to change the controller version.
- create_appearance_tab(_translate)[source]¶
Create and configure the ‘Appearance’ tab with color and display settings.
- Parameters:
(callable) (_translate) – Function used to translate UI text (translate method of QCoreApplication in the Qt framework.)
- create_capsul_group(groupbox_capsul)[source]¶
Create and configure the CAPSUL group box with a configuration button.
- Parameters:
(QGroupBox) (groupbox_capsul) – The group box to be configured for CAPSUL settings.
- create_horizontal_box(*widgets, add_stretch=True)[source]¶
Create a horizontal box layout containing the specified widgets.
- Parameters:
...]) (widgets (tuple[QtWidgets.QWidget,) – The widgets to add to the layout.
(bool) (add_stretch) – Whether to add stretch at the end to push the widgets to the left. Defaults to True.
- Return (QHBoxLayout):
The created horizontal box layout.
- create_pipeline_tab(_translate)[source]¶
Create the ‘Pipeline’ tab in the settings interface.
This tab allows configuring various neuroimaging tool settings, including Matlab, SPM, FSL, AFNI, ANTS, FreeSurfer, MRtrix, and CAPSUL.
- Parameters:
(Callable) (_translate) – Function used to translate UI text (translate method of QCoreApplication in the Qt framework.)
- create_tools_tab(_translate)[source]¶
Create the ‘Tools’ tab in the settings interface.
This tab contains various sections for configuring global preferences, project-specific settings, third-party tool integration, and external resources.
- Parameters:
(Callable) (_translate) – Function used to translate UI text (translate method of QCoreApplication in the Qt framework.)
- edit_capsul_config()[source]¶
Capsul engine edition.
This method is used when user hit the Edit CAPSUL config button (File > MIA preferences > Pipeline tab).
- findChar()[source]¶
Highlights characters in red when using the Find button in the configuration editor.
This method searches for a pattern entered in the find field and highlights all matching occurrences in the text editor.
- save_minimal_config(config)[source]¶
Saves a minimal configuration for CAPSUL config synchronization.
- Parameters:
(Config) (config) – The configuration object to update and save.
- save_full_config(config)[source]¶
Saves the full configuration and validates settings.
- Parameters:
(Config) (config) – The configuration object to update and save.
- Return (bool):
True if the configuration is valid and successfully saved, False otherwise.
- show_error_message(title, message)[source]¶
Displays an error message dialog.
- Parameters:
(str) (message) – The title of the error message dialog.
(str) – The detailed error message to display.
- show_warning_message(title, message)[source]¶
Displays a warning message dialog.
- Parameters:
(str) (message) – The title of the warning message dialog.
(str) – The detailed warning message to display.
- update_gui_from_capsul_config(conf)[source]¶
Updates the GUI elements based on the CAPSUL configuration.
This method retrieves the configuration settings for various neuroimaging tools (e.g., AFNI, ANTs, FreeSurfer, FSL, Matlab, SPM, etc.) and updates the corresponding GUI fields, including checkboxes and text fields.
- Parameters:
(software_properties.Config) (conf) – The Mia configuration object containing the paths and usage states of different tools.
- validate_and_save(OK_clicked=False)[source]¶
Validate and save the preferences.
- Parameters:
(bool) (ok_clicked) – Whether the OK button was clicked (True) when this method was launched.
- Contains:
- remove_capsul_config: Helper function to remove a
module’s configuration
- clean_spm_config: Cleans the SPM configuration based
on standalone mode
clean_matlab_config: Removes MATLAB-related configuration keys
- validate_matlab_path(path, config)[source]¶
Validates the given Matlab executable path.
- Parameters:
(str) (path) – The path to the Matlab executable.
(Config) (config) – The configuration object to update.
- Return (bool):
True if the path is valid and updated in the configuration, False otherwise.
- validate_matlab_standalone_path(path, config)[source]¶
Validate the Matlab standalone path.
This method does not thoroughly test the configuration for Matlab MCR alone (without SPM standalone) due to the lack of a concrete example.
- Parameters:
(str) (path) – The path to the Matlab standalone directory.
(Config) (config) – The configuration object to update.
- Return (bool):
True if the path is valid and updated in the configuration, False otherwise.
- validate_paths(config)[source]¶
Validate the paths and settings.
This method checks the validity of paths for various neuroimaging tools (AFNI, ANTS, FreeSurfer, FSL, MRtrix, Matlab, SPM, etc.) and updates the configuration accordingly. It also validates additional paths such as the projects folder, MRIFileManager.jar path, and resources folder.
- Parameters:
(Config) (config) – The configuration object where validated paths and settings will be stored.
- Return (bool):
True if all paths and settings are valid, False otherwise.
- validate_spm_path(path, config)[source]¶
Validates the SPM path and its compatibility with Matlab.
This method checks whether the provided SPM and Matlab paths are valid. If they are already configured correctly, it enables SPM and Matlab usage without further checks. Otherwise, it attempts to run an SPM command via Matlab to confirm the setup.
- Parameters:
(str) (path) – The file path to the SPM installation.
(Config) (config) – The configuration object where validated paths and settings will be stored.
- Return (bool):
True if the SPM path and Matlab path are valid, False otherwise.
- validate_spm_standalone_path(path, config)[source]¶
Validates the SPM standalone path and its compatibility with Matlab standalone.
This method checks whether the provided paths for SPM standalone and Matlab standalone (if applicable) are valid. It also verifies system architecture compatibility and attempts to execute SPM standalone to confirm its functionality.
- Parameters:
(str) (path) – The file path to the SPM standalone installation.
(Config) (config) – The configuration object where validated paths and settings will be stored.
- Return (bool):
True if the SPM standalone and Matlab standalone paths are valid, False otherwise.
- validate_tool_path(tool_name, path, cmd, config, config_name, set_in_use, set_path)[source]¶
Validates the specified tool’s path and checks its functionality.
This method checks if the given tool path exists and verifies that the tool is functional by running a command to check its version. It also handles tool-specific setup for FreeSurfer and FSL by setting environment variables and adjusting paths as necessary.
- Parameters:
(str) (config_name) – The name of the tool to validate (e.g., “FreeSurfer”, “FSL”, “Matlab”, etc.).
(str) – The file path to the tool’s installation directory.
(str) – The command to execute within the tool’s directory to check its version.
(Config) (config) – The configuration object where validated paths and settings will be stored.
(str) – The name of the configuration setting for the tool.
(Callable) (set_path) – A function to set the tool’s “in use” status in the configuration.
(Callable) – A function to set the tool’s path in the configuration.
- Return (bool):
True if the tool’s path is valid and functional, False otherwise.
- wrong_path(path, tool, extra_mess='')[source]¶
Displays an error message for an invalid tool path.
This method restores the cursor, clears the status label, and shows a QMessageBox with an error message indicating that the provided path for a specified tool is invalid.
- Parameters:
(str) (tool) – The invalid path entered by the user.
(str) – The name of the tool for which the path is being validated.
optional) (extra_mess (str,) – Additional context for the error message, such as specifying a configuration file.
- Return (None):
This function does not return anything.
- class populse_mia.user_interface.main_window.PopUpProperties(project, databrowser, old_tags)[source]¶
Bases:
QDialogDialog for modifying project properties.
Allows users to change project settings, including visualized tags and information. Is called when the user wants to change the current project’s properties (File > properties).
- signal_settings_change¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- class populse_mia.user_interface.main_window.PopUpQuit(project)[source]¶
Bases:
QDialogDialog to handle unsaved project modifications when closing the software.
Provides options to save, discard, or cancel the exit process. Is called when the user closes the software and the current project has been modified.
- save_as_signal¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- do_not_save_signal¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- cancel_signal¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- class populse_mia.user_interface.main_window.PopUpSaveProjectAs[source]¶
Bases:
QDialogDialog for saving a project under a new name.
Provides a user interface to select and save a project with a new name, with options to browse existing projects and validate the new project name.
- signal_saved_project¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- __init__()[source]¶
Initialize the save project as dialog.
Sets up the user interface with a scrollable list of existing projects, input field for new project name, and save/cancel buttons.
- class populse_mia.user_interface.main_window.PopUpSeeAllProjects(saved_projects, main_window)[source]¶
Bases:
QDialogA dialog window for displaying and managing saved projects.
This dialog allows users to view a list of saved projects, check their existence, and open a selected project.
- __init__(saved_projects, main_window)[source]¶
Initialize the PopUpSeeAllProjects dialog.
- Parameters:
saved_projects – Container with a list of project paths.
main_window – Main window.
- checkState(path)[source]¶
Determine the icon based on project existence.
- Parameters:
(str) (path) – Path to the project directory.
- Returns:
QIcon: Green checkmark if project exists, red cross if not.
- class populse_mia.user_interface.main_window.MainWindow(project, test=False, deleted_projects=None)[source]¶
Bases:
QMainWindowInitialize software appearance and define interactions with the user.
- __init__(project, test=False, deleted_projects=None)[source]¶
Main window class, initializes the software appearance and defines interactions with the user.
- Parameters:
project – Current project in the software.
test – Boolean indicating if the widget is launched from unit tests or not.
deleted_projects – Projects that have been deleted.
- check_unsaved_modifications()[source]¶
Check if there are differences between the current project and the database.
- Return (bool):
True if there are unsaved modifications, False otherwise
- closeEvent(event)[source]¶
Override the QWidget closing event to check if there are unsaved modifications.
- Parameters:
event – closing event
Create the menu-bar view.
- get_controller_version()[source]¶
Gives the value of the controller_version_changed attribute.
- Returns:
Boolean
- import_data()[source]¶
Import MRI data using the MRI File Manager and load it into the database.
This method performs the following steps: 1. Launches the MRI conversion software to convert MRI files to
Nifti/JSON format
Attempts import with maximum heap size of 4096M, falls back to 1024M if needed
Updates the database with newly imported scans
Refreshes the data browser UI with new scan information
- install_processes_pop_up(folder=False)[source]¶
Open the install processes pop-up.
- Parameters:
folder – boolean, True if installing from a folder
- static last_window_closed()[source]¶
Force exit the event loop after ipython console is closed.
If the ipython console has been run, something prevents Qt from quitting after the window is closed. The cause is not known yet. So: force exit the event loop.
- open_project_pop_up()[source]¶
Open a dialog to select and open a project, updating recent projects list.
This method handles: 1. Checking for unsaved modifications in current project 2. Opening project selection dialog 3. Validating project path 4. Switching to new project 5. Updating clinical mode based on database fields 6. Updating database paths if project is external
- open_shell()[source]¶
Open an in-process Qt console (QtConsole) connected to this application.
This method creates a QtConsole widget that runs inside the current application process, allowing interactive inspection and manipulation of program internals such as the main window, project, and the QApplication instance. This console does not spawn a subprocess and fully integrates with the existing Qt event loop.
- Features:
- Provides access to key objects:
main_window: this MainWindow instance
project: if available, the current project object
app: the current QApplication instance
Interactive Python prompt
Stdout/stderr from the application will appear in the console
- Dependencies:
qtconsole for the console widget
ipykernel for the in-process IPython kernel
IPython for interactive shell support
If any of these are missing, the console will not open, and a warning is logged.
- Raises:
(RuntimeError) – if QApplication instance does not exist when calling this method
- Returns (RichJupyterWidget):
the created QtConsole widget instance
- remove_raw_files_useless()[source]¶
Remove the useless raw files of the current project.
Close the database connection. The project is not valid any longer after this call.
- set_controller_version()[source]¶
Reverses the value of the controller_version_changed attribute.
From False to True and vice versa
Initialize menu actions with icons and descriptions.
- Parameters:
sources_images_dir – Directory containing source images for icons.
- switch_project(file_path, name)[source]¶
Check if it’s possible to open the selected project and quit the current one.
- Parameters:
file_path – raw file_path
name – project name
- Returns:
Boolean
- tab_changed()[source]¶
Update the window when switching between application tab.
Updates the UI state and data when switching between Data Browser, Data Viewer, and Pipeline Manager tabs. Handles data synchronization, search state preservation, and unsaved changes warnings.
The method performs the following operations based on the selected tab: - Data Browser: Refreshes table data, preserves search state and
visualization settings
Data Viewer: Loads current viewer and updates document list
- Pipeline Manager: Updates scan lists and handles unsaved
modifications
- undo()[source]¶
Reverts the last action performed by the user, depending on the active tab.
If the “Data Browser” tab is active, the undo operation is applied to the project’s database. If the “Pipeline Manager” tab is active, the pipeline manager’s undo function is invoked.
- update_project(file_path, call_update_table=True)[source]¶
Updates the project after a database change.
This method updates the database, the window title, and the recent and saved projects menus.
- Parameters:
(str) (file_path) – The file path of the new project.
(bool) (call_update_table) – Whether to update the table data. Defaults to True.