QMainWindow resize(150,60)

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Omm
User
Beiträge: 90
Registriert: Samstag 7. April 2018, 14:05

Hallo zusammen

Kann mir jemand bitte sagen, wieso das Fenster nicht auf die (150,60) angepasst wird?
Endsziel ist es, wenn ich mit der Mouse auf das "letzter_eintrag" geht werden zwei frm ( frm_projekt_eintragen und bar_buttons) eingeblendet und das Fenster wird groesser. Dies funktioniert soweit ok.
Nun moechte ich aber, dass wenn ich mit der Mouse weg gehe, soll das Fenster wieder auf die Ursprugsgroesse gehen.
Evtl. muss man alles neu initialisieren, aber wie macht ich dies.

Code: Alles auswählen

#!/usr/bin/env python

from PyQt5 import QtCore
from PyQt5.QtCore import Qt, QEvent

import sys
from PyQt5.QtWidgets import (QWidget, QHBoxLayout, QVBoxLayout, QMainWindow, QLabel)
from worklogapp.frm_projekt_eintragen import WindowProjektEintragen
from worklogapp.frm_barButtons import Bar_Buttons
from worklogapp.styles import MainStyleUI
from worklogapp.log import Log


class MainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)
        self.frm_projekt_eintragen  = WindowProjektEintragen()
        self.log = Log()
        self.bar_buttons = Bar_Buttons()
        self.layout_frm = QVBoxLayout()
        self.V_bar_button = QVBoxLayout()
        self.layout = QHBoxLayout()
        self.widget = QWidget()
        self.initUI()

    def initUI(self):
        self.layout_frm.setContentsMargins(0, 0, 0, 0)
        self.layout_frm.setSpacing(0)

        self.layout.setContentsMargins(0, 0, 0, 0)
        self.layout.setSpacing(0)

        self.letzter_eintrag = QLabel(self.log.letzer_eintrag_auslesen().to_string())
        self.letzter_eintrag.setObjectName('letzter_eintrag')
        self.letzter_eintrag.setUpdatesEnabled(True)
        self.letzter_eintrag.setAlignment(Qt.AlignCenter)
        self.letzter_eintrag.setBaseSize(QtCore.QSize(150, 55))

        self.V_bar_button.addWidget(self.bar_buttons)
        self.layout_frm.addWidget(self.letzter_eintrag)
        self.layout_frm.addWidget(self.frm_projekt_eintragen)

        self.layout.addLayout(self.V_bar_button)
        self.layout.addLayout(self.layout_frm)

        self.widget.setLayout(self.layout)
        self.setCentralWidget(self.widget)
        self.setGeometry(50, 50, 150, 60)
        self.frm_projekt_eintragen.setVisible(False)
        self.bar_buttons.setVisible(False)

        self.installEventFilter(self)

    def eventFilter(self, obj, event):
        if event.type() == QEvent.Enter:
            print('go')
            self.bar_buttons.setVisible(True)
            self.frm_projekt_eintragen.setVisible(True)
            self.stop = True

        elif event.type() == QEvent.Leave:
            print('stop')
            self.frm_projekt_eintragen.setVisible(False)
            self.bar_buttons.setVisible(False)
            self.resize(150, 60)
            self.stop = False
        return False


def main():
    app = MainStyleUI(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()
Antworten