Der Einfachheit habe ich mal die Maindatei reinkopiert.
Das QLabel (self.letzter_eintrag) wird aus mehren Formularen überschrieben(aktualisiert). 
Jedoch läuft letztendes alles über die Log Datei. 
Macht es da Sinn, in der Log Datei eine Klasse Signale zu machen?
Code: Alles auswählen
#!/usr/bin/env python
import locale
import sys
from PyQt5.QtCore import Qt, QTimer, pyqtSlot
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QWidget, QHBoxLayout, QVBoxLayout, QMainWindow, QApplication
from worklogapp.frm_projekt_eintragen import WindowProjektEintragen
from worklogapp.frm_barButtons import Bar_Buttons
from worklogapp.log import Log
from worklogapp.frm_container import  AnimButton, AnimLabel
import qtmodern.styles
import qtmodern.windows
class MainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        locale.setlocale(locale.LC_ALL, 'de')
        super(MainWindow, self).__init__(*args, **kwargs)
        self.iniSize = False
        self.secondsize = False
        self.top = 1
        self.left = 1
        self.width = 180
        self.height = 80
        self.width_min = self.size().width()
        self.height_min = self.size().height()
        self.setWindowTitle('WL-A')
        self.setGeometry(self.left, self.top, self.width, self.height)
        self.setMouseTracking(True)
        self.bar_buttons = Bar_Buttons()
        self.layout_frm = QVBoxLayout()
        self.V_bar_button = QVBoxLayout()
        self.layout = QHBoxLayout()
        self.widget = QWidget()
        self.timer_hover = QTimer()
        self.frm_projekt_eintragen = WindowProjektEintragen()
        self.frm_projekt_eintragen.sig_update_label.connect(self.update_textfeld_letzter_eintrag)
        self.log = Log()
        self.log.backup_timer()
        self.log.update_label()
        self.log.sig_update_label_log.connect(self.update_textfeld_from_log)
        self.initUI()
    def initUI(self):
        # Alles Randlos setzen
        self.layout_frm.setContentsMargins(2, 2, 2, 2)
        self.layout_frm.setSpacing(0)
        self.layout.setContentsMargins(0, 0, 0, 0)
        self.layout.setSpacing(0)
        self.V_bar_button.setContentsMargins(0, 0, 0, 0)
        self.V_bar_button.setSpacing(0)
        # Label laden letzter Eintrag
        self.letzter_eintrag = AnimLabel(self.log.letzer_eintrag_auslesen().to_string())
        self.letzter_eintrag.setObjectName('letzter_eintrag')
        self.letzter_eintrag.setUpdatesEnabled(True)
        self.letzter_eintrag.setAlignment(Qt.AlignCenter)
        # Raster add alle Objekte
#        self.bt_stop_anim_qlabel= AnimButton('testbutton')
        self.V_bar_button.addWidget(self.bar_buttons)
        #self.layout_frm.addWidget(self.bt_stop_anim_qlabel)
        self.layout_frm.addWidget(self.letzter_eintrag)
        self.layout_frm.addWidget(self.frm_projekt_eintragen)
        # Einzelen Layout zur Main Layaut hinzufügen
        self.layout.addLayout(self.V_bar_button)
        self.layout.addLayout(self.layout_frm)
        # Layout auf Main legen und einpassen
        self.widget.setLayout(self.layout)
        self.setCentralWidget(self.widget)
        # Widget deaktivieren für Defaultgrösse
        self.frm_projekt_eintragen.setVisible(False)
        self.bar_buttons.setVisible(False)
    def enterEvent(self, event):
        # Maus auf dem Label(Main) "letzter_eintrag"
        self.timer_hover.stop()
        self.bar_buttons.setVisible(True)
        self.frm_projekt_eintragen.setVisible(True)
        self.update()
        if not self.iniSize:
            self.width_max = self.size().width()
            self.height_max = self.size().height()
            self.iniSize = True
            self.secondsize = True
        if self.secondsize:
            self.parent.setMinimumSize(self.width_max, self.height_max)
            self.parent.resize(self.width_max, self.height_max)
    def leaveEvent(self, event):
        # warten bis das Fenster verkleinert werden soll
        self.timer_hover.start(5000)
        self.timer_hover.timeout.connect(self.end_hoverd)
    def end_hoverd(self):
        # Fenster verkleinert
        self.timer_hover.stop()
        self.frm_projekt_eintragen.setVisible(False)
        self.bar_buttons.setVisible(False)
        self.update()
        self.parent.setMinimumSize(self.width, self.height + 7)
        self.parent.resize(self.width, self.height + 7)
        self.parent.update()
    def setparent(self,parent):
        self.parent = parent
    def update_textfeld_letzter_eintrag(self):
        self.letzter_eintrag.setText(self.log.letzer_eintrag_auslesen().to_string())
        self.setStyleSheet('')
    @pyqtSlot(bool, str)
    def update_textfeld_from_log(self, status, meldung):
        if status:
            self.letzter_eintrag.setText(meldung)
            self.setStyleSheet("""QLabel#letzter_eintrag{color: green;}""")
        else:
            self.letzter_eintrag.setText(meldung)
            self.setStyleSheet("""QLabel#letzter_eintrag{background-color: red;}""")
        self.timer_backup = QTimer()
        self.timer_backup.timeout.connect(self.update_textfeld_letzter_eintrag)
        self.timer_backup.start(3000)
def main():
    app = QApplication(sys.argv)
    qtmodern.styles.dark(app)
    window = qtmodern.windows.ModernWindow(MainWindow())
    window.w.setparent(window)
    window.show()
    sys.exit(app.exec_())
if __name__ == "__main__":
    main()
"""
def main():
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())
if __name__ == '__main__':
    main()
"""
 
die Logdatei ist auf das Minimum reduziert.
Code: Alles auswählen
class Log(QObject):
    sig_update_label_log = pyqtSignal(bool, str)
    def __init__(self, *args, **kwargs):
        super(Log, self).__init__(*args, **kwargs)
        self.log_entry = Log_entry()
        ...
    def irgendEineFunktion(self): 
         ...
        self.update_label()
    def update_label(self):
        self.sig_update_label_log.emit(True, 'aber jetzt')