From a907a8b8f9bf6e4321d74f8369cf594efa63d9da Mon Sep 17 00:00:00 2001 From: Vitali Graf Date: Wed, 21 May 2025 20:26:03 +0200 Subject: [PATCH] Layout steht. --- src/MainWindow.py | 33 +++++++- main.py => src/main.py | 2 +- src/ui/MainWinddow.ui | 172 ++++++++++++++++++++++++++++++++------- src/ui/MainWinddow_ui.py | 110 +++++++++++++++++++++---- 4 files changed, 270 insertions(+), 47 deletions(-) rename main.py => src/main.py (91%) diff --git a/src/MainWindow.py b/src/MainWindow.py index 0808977..58a2ff5 100644 --- a/src/MainWindow.py +++ b/src/MainWindow.py @@ -1,5 +1,8 @@ +import os from PySide6.QtWidgets import QMainWindow -from src.ui.MainWinddow_ui import Ui_MainWindow +from PySide6.QtGui import QPixmap +# from PySide6.QtCore import Qt +from ui.MainWinddow_ui import Ui_MainWindow class MainWindow(QMainWindow): @@ -16,9 +19,37 @@ class MainWindow(QMainWindow): self.ui = Ui_MainWindow() self.ui.setupUi(self) + # Bilder korrekt laden + self._load_images() + # Signale und Slots verbinden self._connect_signals() + def _load_images(self): + """Lädt die Bilder mit absoluten Pfaden.""" + base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + # Absolute Pfade zu den Bildern erstellen + img1_path = os.path.join(base_dir, "src", "ui", "res", "graf_1.gif") + img2_path = os.path.join(base_dir, "src", "ui", "res", "graf_3.gif") + + print(repr(self.ui.label), img2_path) + + # Bilder setzen, wenn die Dateien existieren + if os.path.exists(img1_path): + self.ui.label.setPixmap(QPixmap(img1_path).scaledToWidth(200)) + self.ui.label_3.setPixmap(QPixmap(img1_path)) + else: + self.ui.label.setText(f"Fehler: Bild nicht gefunden: {img1_path}") + self.ui.label_3.setText(f"Fehler: Bild nicht gefunden: {img1_path}") + + if os.path.exists(img2_path): + self.ui.label_2.setPixmap(QPixmap(img2_path).scaledToWidth(200)) + self.ui.label_4.setPixmap(QPixmap(img2_path)) + else: + self.ui.label_2.setText(f"Fehler: Bild nicht gefunden: {img2_path}") + self.ui.label_4.setText(f"Fehler: Bild nicht gefunden: {img2_path}") + def _connect_signals(self): """Verbindet Signale mit den entsprechenden Slots.""" # Beispiel für Signal-Verbindung: diff --git a/main.py b/src/main.py similarity index 91% rename from main.py rename to src/main.py index 4669d1b..0ca31e2 100644 --- a/main.py +++ b/src/main.py @@ -1,6 +1,6 @@ import sys from PySide6.QtWidgets import QApplication -from src.MainWindow import MainWindow +from MainWindow import MainWindow def main(): diff --git a/src/ui/MainWinddow.ui b/src/ui/MainWinddow.ui index 8a6ec20..4dbb153 100644 --- a/src/ui/MainWinddow.ui +++ b/src/ui/MainWinddow.ui @@ -6,7 +6,7 @@ 0 0 - 455 + 1348 921 @@ -17,6 +17,12 @@ + + + 0 + 0 + + QFrame::Shape::StyledPanel @@ -25,34 +31,34 @@ - - - QFrame::Shape::StyledPanel + + + + 0 + 0 + + + 2 + + + + 1 + + + + + 2 + + + + + + QFrame::Shadow::Raised - - - - Qt::LayoutDirection::LeftToRight - - - PushButton - - - - - - - false - - - PushButton - - - @@ -66,6 +72,32 @@ + + + + Qt::LayoutDirection::LeftToRight + + + nur geänderte generieren + + + + + + + + + + false + + + Alle generieren + + + + + + @@ -73,10 +105,94 @@ - - - Qt::Orientation::Vertical + + + + 0 + 0 + + + true + + + + + 0 + 0 + 2480 + 7070 + + + + + + + + + + res/graf_1.gif + + + + + + + + + + res/graf_3.gif + + + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + + + + + true + + + + + 0 + 0 + 377 + 847 + + + + + + + TextLabel + + + + + + + TextLabel + + + + + @@ -86,7 +202,7 @@ 0 0 - 455 + 1348 33 diff --git a/src/ui/MainWinddow_ui.py b/src/ui/MainWinddow_ui.py index a898b72..04d9c12 100644 --- a/src/ui/MainWinddow_ui.py +++ b/src/ui/MainWinddow_ui.py @@ -15,64 +15,136 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont, QFontDatabase, QGradient, QIcon, QImage, QKeySequence, QLinearGradient, QPainter, QPalette, QPixmap, QRadialGradient, QTransform) -from PySide6.QtWidgets import (QApplication, QFrame, QHBoxLayout, QMainWindow, - QMenuBar, QPushButton, QSizePolicy, QSpacerItem, - QStatusBar, QVBoxLayout, QWidget) +from PySide6.QtWidgets import (QApplication, QFrame, QHBoxLayout, QHeaderView, + QLabel, QMainWindow, QMenuBar, QPushButton, + QScrollArea, QSizePolicy, QSpacerItem, QStatusBar, + QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget) class Ui_MainWindow(object): def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName(u"MainWindow") - MainWindow.resize(455, 921) + MainWindow.resize(1348, 921) self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName(u"centralwidget") self.horizontalLayout = QHBoxLayout(self.centralwidget) self.horizontalLayout.setObjectName(u"horizontalLayout") self.frame = QFrame(self.centralwidget) self.frame.setObjectName(u"frame") + sizePolicy = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth()) + self.frame.setSizePolicy(sizePolicy) self.frame.setFrameShape(QFrame.Shape.StyledPanel) self.frame.setFrameShadow(QFrame.Shadow.Raised) self.verticalLayout = QVBoxLayout(self.frame) self.verticalLayout.setObjectName(u"verticalLayout") + self.treeWidget = QTreeWidget(self.frame) + __qtreewidgetitem = QTreeWidgetItem() + __qtreewidgetitem.setText(1, u"2"); + __qtreewidgetitem.setText(0, u"1"); + self.treeWidget.setHeaderItem(__qtreewidgetitem) + self.treeWidget.setObjectName(u"treeWidget") + sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + sizePolicy1.setHorizontalStretch(0) + sizePolicy1.setVerticalStretch(0) + sizePolicy1.setHeightForWidth(self.treeWidget.sizePolicy().hasHeightForWidth()) + self.treeWidget.setSizePolicy(sizePolicy1) + self.treeWidget.setColumnCount(2) + + self.verticalLayout.addWidget(self.treeWidget) + self.frame_2 = QFrame(self.frame) self.frame_2.setObjectName(u"frame_2") - self.frame_2.setFrameShape(QFrame.Shape.StyledPanel) self.frame_2.setFrameShadow(QFrame.Shadow.Raised) self.horizontalLayout_2 = QHBoxLayout(self.frame_2) self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") + self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.horizontalLayout_2.addItem(self.horizontalSpacer) + self.pushButton = QPushButton(self.frame_2) self.pushButton.setObjectName(u"pushButton") self.pushButton.setLayoutDirection(Qt.LayoutDirection.LeftToRight) + icon = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.MediaPlaybackStart)) + self.pushButton.setIcon(icon) self.horizontalLayout_2.addWidget(self.pushButton) self.pushButton_2 = QPushButton(self.frame_2) self.pushButton_2.setObjectName(u"pushButton_2") self.pushButton_2.setAutoFillBackground(False) + icon1 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.MediaSeekForward)) + self.pushButton_2.setIcon(icon1) self.horizontalLayout_2.addWidget(self.pushButton_2) - self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.horizontalLayout_2.addItem(self.horizontalSpacer) - self.verticalLayout.addWidget(self.frame_2) self.horizontalLayout.addWidget(self.frame) - self.line = QFrame(self.centralwidget) - self.line.setObjectName(u"line") - self.line.setFrameShape(QFrame.Shape.VLine) - self.line.setFrameShadow(QFrame.Shadow.Sunken) + self.scrollArea = QScrollArea(self.centralwidget) + self.scrollArea.setObjectName(u"scrollArea") + sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Minimum) + sizePolicy2.setHorizontalStretch(0) + sizePolicy2.setVerticalStretch(0) + sizePolicy2.setHeightForWidth(self.scrollArea.sizePolicy().hasHeightForWidth()) + self.scrollArea.setSizePolicy(sizePolicy2) + self.scrollArea.setWidgetResizable(True) + self.scrollAreaWidgetContents = QWidget() + self.scrollAreaWidgetContents.setObjectName(u"scrollAreaWidgetContents") + self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 2480, 7070)) + self.verticalLayout_2 = QVBoxLayout(self.scrollAreaWidgetContents) + self.verticalLayout_2.setObjectName(u"verticalLayout_2") + self.label = QLabel(self.scrollAreaWidgetContents) + self.label.setObjectName(u"label") + self.label.setPixmap(QPixmap(u"res/graf_1.gif")) - self.horizontalLayout.addWidget(self.line) + self.verticalLayout_2.addWidget(self.label) + + self.label_2 = QLabel(self.scrollAreaWidgetContents) + self.label_2.setObjectName(u"label_2") + self.label_2.setPixmap(QPixmap(u"res/graf_3.gif")) + + self.verticalLayout_2.addWidget(self.label_2) + + self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.verticalLayout_2.addItem(self.verticalSpacer) + + self.scrollArea.setWidget(self.scrollAreaWidgetContents) + + self.horizontalLayout.addWidget(self.scrollArea) + + self.scrollArea_2 = QScrollArea(self.centralwidget) + self.scrollArea_2.setObjectName(u"scrollArea_2") + self.scrollArea_2.setWidgetResizable(True) + self.scrollAreaWidgetContents_2 = QWidget() + self.scrollAreaWidgetContents_2.setObjectName(u"scrollAreaWidgetContents_2") + self.scrollAreaWidgetContents_2.setGeometry(QRect(0, 0, 377, 847)) + self.verticalLayout_3 = QVBoxLayout(self.scrollAreaWidgetContents_2) + self.verticalLayout_3.setObjectName(u"verticalLayout_3") + self.label_3 = QLabel(self.scrollAreaWidgetContents_2) + self.label_3.setObjectName(u"label_3") + + self.verticalLayout_3.addWidget(self.label_3) + + self.label_4 = QLabel(self.scrollAreaWidgetContents_2) + self.label_4.setObjectName(u"label_4") + + self.verticalLayout_3.addWidget(self.label_4) + + self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2) + + self.horizontalLayout.addWidget(self.scrollArea_2) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(MainWindow) self.menubar.setObjectName(u"menubar") - self.menubar.setGeometry(QRect(0, 0, 455, 33)) + self.menubar.setGeometry(QRect(0, 0, 1348, 33)) MainWindow.setMenuBar(self.menubar) self.statusbar = QStatusBar(MainWindow) self.statusbar.setObjectName(u"statusbar") @@ -85,7 +157,11 @@ class Ui_MainWindow(object): def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None)) - self.pushButton.setText(QCoreApplication.translate("MainWindow", u"PushButton", None)) - self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"PushButton", None)) + self.pushButton.setText(QCoreApplication.translate("MainWindow", u"nur ge\u00e4nderte generieren", None)) + self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"Alle generieren", None)) + self.label.setText("") + self.label_2.setText("") + self.label_3.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) + self.label_4.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None)) # retranslateUi