Pymecavideo 8.0
Étude cinématique à l'aide de vidéos
etats.py
1# -*- coding: utf-8 -*-
2
3"""
4 etats, a module for pymecavideo:
5 a program to track moving points in a video frameset
6
7 Copyright (C) 2023 Georges Khaznadar <georgesk@debian.org>
8
9 This program is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
21"""
22
23from PyQt6.QtCore import QObject
24import os
25
26class Etats_Base(QObject):
27 """
28 Une classe qui permet de définir les états pour le pointageWidget
29 debut, A, AB, B, C, D, E : voir le fichier etats_pymecavideo.html
30 """
31
32 def __init__(self):
33 QObject.__init__(self)
34 # la liste des états de Pymecavideo
35 self.etats = "debut,A,AB,B,C,D,E".split(",")
36 # dictionnaire etat => message pour la barre de statut
38 self.etat_ancien = None # état précédent
39 return
40
41 def changeEtat(self, etat):
42 """
43 Mise en place d'un état de l'interface utilisateur, voir la
44 documentation dans le fichier etat_pymecavideo.html
45
46 Cette fonction est virtuelle elle doit être surchargée
47 """
48 raise(Exception, "Etats_Base.changeEtat est une fonction virtuelle, elle doit être surchargée.")
49
50
52 """
53 Définit les correspondances en état et message de barre de statut
54 """
55 # les fonction qui permettent d'avoir les débuts de messages de statut
56 def msgDebut(app):
57 return self.tr("Début : ouvrez un fichier, ou un exemple des aides")
58 def msgA(app):
59 if app.filename is None: return ""
60 return self.tr("Fichier vidéo : {filename} ... définissez l'échelle ou démarrez le pointage | Il est possible de redimensionner la fenêtre").format(filename = os.path.basename(app.filename))
61 def msgAB(app):
62 return self.tr("Préparation du pointage automatique : sélectionnez les objets à suivre, au nombre de {n}").format(n = app.pointage.nb_obj)
63 def msgB(app):
64 return self.tr("Pointage automatique en cours : il peut être interrompu par le bouton STOP")
65 def msgC(app):
66 return self.tr("Définissez l'échelle, par un tirer-glisser sur l'image")
67 def msgD(app):
68 return self.tr("Pointage manuel : cliquez sur le premier objet à suivre")
69 def msgE(app):
70 return self.tr("Pointage manuel : il reste encore des objets à pointer, on en est à {obj}").format(obj = app.pointage.objet_courant)
71 return { # résumé de ce que représente un état
72 "debut" : msgDebut,
73 "A" : msgA,
74 "AB" : msgAB,
75 "B" : msgB,
76 "C" : msgC,
77 "D" : msgD,
78 "E" : msgE,
79 }
80
Une classe qui permet de définir les états pour le pointageWidget debut, A, AB, B,...
Definition: etats.py:30
def changeEtat(self, etat)
Mise en place d'un état de l'interface utilisateur, voir la documentation dans le fichier etat_pymeca...
Definition: etats.py:47
def definit_messages_statut(self)
Définit les correspondances en état et message de barre de statut.
Definition: etats.py:54