Parameter Übergabe

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Basti123
User
Beiträge: 7
Registriert: Mittwoch 25. März 2020, 14:35

Hallo Leute,

mein Plan ist es mit einem Doppelklick auf eine meiner Boxen ein extra Fenster zuöffnen, in dem Eigenschaften der Box zu finden sind. Diese sollen schon per default irgendein Wert haben und wenn ich diesen Wert manuell ändere, soll dieser Wert gespeichert werden, wenn ich auf Ok klicke.
Ich habe es bisher geschafft den DoppelLinksKlick zu implementieren, und es öffnet sich ein Fenster wo man Werte für test_variable_1, test_variable_2, test_variable_3 und test_variable_4 eintragen kann.
In meiner class Box habe ich diese vier Variablen definiert und irgendein Zahlen Wert zugeordnet.
Jetzt weiß ich leider nicht wie ich diese Werte in die class BoxAttributes bekomme, sodass sie dort bearbeitet werden können.
Habe leider keine Ahnung wie ich da rangehen soll.

from tests.testattribute.editor_graphics_box import GraphicsBox

editor_box.py

Code: Alles auswählen

class Box():
    def __init__(self, scene, title="Undefined Box"):
        super().__init__()
        self._title = title
        self.scene = scene
        self.grBox = GraphicsBox(self)
        self.title = title

        self.scene.addBox(self)
        self.scene.grScene.addItem(self.grBox)

        "Box characteristics"
        self.test_variable_1 = 42
        self.test_variable_2 = 4
        self.test_variable_3 = 90.4
        self.test_variable_4 = 5.98

    # The grBox know the Box Position
    @property
    def pos(self):
        return self.grBox.pos()
    # set the position of the Box
    def setPos(self, x, y):
        self.grBox.setPos(x, y)

    @property
    def title(self):
        return self._title

    @title.setter
    def title(self, value):
        self._title = value
        self.grBox.title = self._title

editor_box_attributes

Code: Alles auswählen

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

class BoxAttributes(QDialog):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        self.layout = QVBoxLayout()
        self.tabWidget = QTabWidget()
        self.setContentsMargins(0, 0, 0, 0)
        self.setGeometry(200, 500, 500, 200)
        self.setWindowTitle("Box Attributes")
        self.tabWidget.setFont(QFont("Ubuntu", 12))
        self.buttonbox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
        self.buttonbox.accepted.connect(self.accept)
        self.buttonbox.rejected.connect(self.reject)
        self.tabWidget.addTab(TabTest1(), "Test 1")
        self.tabWidget.addTab(TabTest2(), "Test 2")
        self.layout.addWidget(self.tabWidget)
        self.layout.addWidget(self.buttonbox)
        self.setLayout(self.layout)
        self.show()

class TabTest1(QWidget):
    def __init__(self):
        super().__init__()
        test_variable_1_label = QLabel("Test Variable 1: ")
        test_variable_1_edit = QLineEdit()
        test_variable_2_label = QLabel("Test Variable 2:")
        test_variable_2_edit = QLineEdit()
        layout = QVBoxLayout()
        layout.addWidget(test_variable_1_label)
        layout.addWidget(test_variable_1_edit)
        layout.addWidget(test_variable_2_label)
        layout.addWidget(test_variable_2_edit)
        self.setLayout(layout)

class TabTest2(QWidget):
    def __init__(self):
        super().__init__()
        test_variable_3_label = QLabel("Test Variable 3: ")
        test_variable_3_edit = QLineEdit()
        test_variable_4_label = QLabel("Test Variable 4:")
        test_variable_4_edit = QLineEdit()
        layout = QVBoxLayout()
        layout.addWidget(test_variable_3_label)
        layout.addWidget(test_variable_3_edit)
        layout.addWidget(test_variable_4_label)
        layout.addWidget(test_variable_4_edit)
        self.setLayout(layout)
Der Rest des Codes:
https://github.com/sebbastiannn/TUProje ... tattribute
Antworten