From 18c600c7c7fc66c80929c0c4cc899d4d6912996b5a26f5d4a2b3d32f1d33e6c8 Mon Sep 17 00:00:00 2001 From: Marco Gatzen Date: Mon, 11 Nov 2024 08:33:50 +0100 Subject: [PATCH] GUI ausbau --- gui/CustomerTables.qml | 29 +++++++++- gui/EmployeTables.qml | 126 +++++++++++++++++++++++++++++++++++++++++ gui/TopBar.qml | 5 ++ main.py | 1 + pyqcrm.pyproject | 3 +- 5 files changed, 161 insertions(+), 3 deletions(-) create mode 100644 gui/EmployeTables.qml diff --git a/gui/CustomerTables.qml b/gui/CustomerTables.qml index 128aa65..cef8d80 100644 --- a/gui/CustomerTables.qml +++ b/gui/CustomerTables.qml @@ -72,11 +72,23 @@ Item { columnSpacing: 1 rowSpacing: 2 model: dbm + selectionBehavior: TableView.SelectRows + selectionModel: ItemSelectionModel - delegate:Item + + { + id: selModel + model: testTable.model + } + + + delegate:Rectangle { + required property bool selected + required property bool current implicitWidth: 200 implicitHeight: 25 + color: selected? "lightblue": palette.base Text { @@ -87,8 +99,21 @@ Item { MouseArea { + id: mouseArea + property bool hovered:false + anchors.fill: parent - onClicked: dbm.onRowClicked(row) + hoverEnabled: true + + + onClicked: + { + dbm.onRowClicked(row) + testTable.selectionModel.select(testTable.model.index(row, 0), ItemSelectionModel.SelectCurrent | ItemSelectionModel.Rows) + + + } + } } } diff --git a/gui/EmployeTables.qml b/gui/EmployeTables.qml new file mode 100644 index 0000000..fd955b2 --- /dev/null +++ b/gui/EmployeTables.qml @@ -0,0 +1,126 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import Qt.labs.qmlmodels + + +Item { + property var availableFilters: ["Name", "Adresse", "PLZ", "Ort", "Status"] + + SearchBar + { + id:searchBar + anchors.margins: 9 + } + + ColumnLayout + { + anchors + { + + top: searchBar.bottom + bottom: parent.bottom + left: parent.left + right: parent.right + + } + + RowLayout + { + + RadioButton + { + + checked: true + text: qsTr("Alle") + } + RadioButton + { + + text: qsTr("Bewerber") + } + RadioButton + { + + text: qsTr("Mitarbeiter") + } + RadioButton + { + + text: qsTr("Erledigt") + } + RadioButton + { + + text: qsTr("Ausgeschieden") + } + + } + + HorizontalHeaderView + { + id: horizontalHeader + Layout.fillWidth: true + syncView: testTable + + } + + TableView + { + id: testTable + Layout.fillHeight: true + Layout.fillWidth: true + columnSpacing: 1 + rowSpacing: 2 + model: dbm + selectionBehavior: TableView.SelectRows + selectionModel: ItemSelectionModel + + + { + id: selModel + model: testTable.model + } + + + delegate:Rectangle + { + required property bool selected + required property bool current + implicitWidth: 200 + implicitHeight: 25 + color: selected? "lightblue": palette.base + + Text + { + Layout.fillWidth: true + text: model.display + + } + + MouseArea + { + id: mouseArea + property bool hovered:false + + anchors.fill: parent + hoverEnabled: true + + + onClicked: + { + dbm.onRowClicked(row) + testTable.selectionModel.select(testTable.model.index(row, 0), ItemSelectionModel.SelectCurrent | ItemSelectionModel.Rows) + + + } + + } + } + } + + } +} + + + diff --git a/gui/TopBar.qml b/gui/TopBar.qml index 2336fc5..7e435c2 100644 --- a/gui/TopBar.qml +++ b/gui/TopBar.qml @@ -47,6 +47,7 @@ RowLayout flat: true text: qsTr("Objekt") implicitWidth: objekt.implicitContentWidth + 10 + } Button @@ -55,6 +56,10 @@ RowLayout flat: true text: qsTr("Mitarbeiter") implicitWidth: mitarbeiter.implicitContentWidth + 10 + onClicked: + { + appLoader.source = "EmployeTables.qml" + } } Button diff --git a/main.py b/main.py index 163bc50..479574b 100644 --- a/main.py +++ b/main.py @@ -50,6 +50,7 @@ if __name__ == "__main__": if not config.getConfig(): bad_config = True + engine.rootContext().setContextProperty("dbm", dbm) engine.rootContext().setContextProperty("bad_config", bad_config) # print(f"Fehler: {i}") engine.rootContext().setContextProperty("config", config) diff --git a/pyqcrm.pyproject b/pyqcrm.pyproject index fe53c64..1bcda4d 100644 --- a/pyqcrm.pyproject +++ b/pyqcrm.pyproject @@ -12,6 +12,7 @@ "gui/CustomerTables.qml", "gui/SearchBar.qml", "gui/test.qml", - "lib/DataBase.py" + "lib/DataBase.py", + "gui/EmployeTables.qml" ] }