Add design prototype, some renamings.
This commit is contained in:
148
doc/material_dummy/mainwindow.h
Normal file
148
doc/material_dummy/mainwindow.h
Normal file
@@ -0,0 +1,148 @@
|
||||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
|
||||
#include <QApplication>
|
||||
#include <QWidget>
|
||||
#include <QTableView>
|
||||
#include <QStandardItemModel>
|
||||
#include <QVBoxLayout>
|
||||
#include <QHeaderView>
|
||||
|
||||
#include <QSlider>
|
||||
#include <QPainter>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QWidget>
|
||||
#include <QPushButton>
|
||||
#include <QLineEdit>
|
||||
#include <QSlider>
|
||||
#include <QCheckBox>
|
||||
#include <QVBoxLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QLabel>
|
||||
#include <QProxyStyle>
|
||||
#include <QPainter>
|
||||
#include <QStyleOptionSlider>
|
||||
#include <QGraphicsDropShadowEffect>
|
||||
|
||||
#include "sliderdelegate.h"
|
||||
|
||||
class TableViewDemo : public QWidget
|
||||
{
|
||||
public:
|
||||
TableViewDemo()
|
||||
{
|
||||
setWindowTitle("QTableView mit QSlider Editor");
|
||||
resize(700, 400);
|
||||
|
||||
auto* layout = new QVBoxLayout(this);
|
||||
|
||||
// Model erstellen (3 Spalten, 10 Zeilen)
|
||||
auto* model = new QStandardItemModel(10, 2, this);
|
||||
|
||||
// Header setzen
|
||||
model->setHorizontalHeaderLabels({"Name", "Wert"});
|
||||
|
||||
// Daten einfügen
|
||||
for (int row = 0; row < 10; ++row) {
|
||||
auto* nameItem = new QStandardItem(QString("Eintrag %1").arg(row + 1));
|
||||
auto* valueItem = new QStandardItem();
|
||||
|
||||
// Wert-Item editierbar machen
|
||||
valueItem->setData(row * 10, Qt::EditRole); // Startwert 0-90
|
||||
valueItem->setEditable(true);
|
||||
|
||||
// Andere nicht editierbar
|
||||
nameItem->setEditable(false);
|
||||
|
||||
|
||||
model->setItem(row, 0, nameItem);
|
||||
model->setItem(row, 1, valueItem);
|
||||
}
|
||||
|
||||
// TableView erstellen
|
||||
auto* tableView = new QTableView();
|
||||
tableView->setModel(model);
|
||||
|
||||
// === SLIDER DELEGATE für Spalte 2 ===
|
||||
//auto* sliderDelegate = new SliderDelegate(this);
|
||||
//tableView->setItemDelegateForColumn(1, sliderDelegate);
|
||||
|
||||
tableView->setAlternatingRowColors(false);
|
||||
// === LINIEN ENTFERNEN ===
|
||||
tableView->setShowGrid(false);
|
||||
|
||||
// Header Style
|
||||
tableView->horizontalHeader()->setStyleSheet(R"(
|
||||
QHeaderView::section {
|
||||
background-color: #F5F5F5;
|
||||
padding: 10px;
|
||||
border: none;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
}
|
||||
)");
|
||||
|
||||
|
||||
|
||||
// Vertikaler Header ausblenden
|
||||
tableView->verticalHeader()->setVisible(false);
|
||||
|
||||
// Alternating Row Colors
|
||||
//tableView->setAlternatingRowColors(true);
|
||||
|
||||
// Style für TableView
|
||||
tableView->setStyleSheet(R"(
|
||||
QTableView
|
||||
{
|
||||
background-color: white;
|
||||
border: none;
|
||||
selection-background-color: #E3F2FD;
|
||||
selection-color: black;
|
||||
}
|
||||
QTableView::item
|
||||
{
|
||||
padding: 10px;
|
||||
border: none;
|
||||
}
|
||||
QTableView::item:selected {
|
||||
background-color: #E3F2FD;
|
||||
border: 1px solid #0078D4; /* Rahmen um JEDE Zelle */
|
||||
}
|
||||
|
||||
}
|
||||
)");
|
||||
|
||||
|
||||
// Spaltenbreite
|
||||
tableView->setColumnWidth(0, 50);
|
||||
tableView->setColumnWidth(1, 150);
|
||||
tableView->horizontalHeader()->setStretchLastSection(true);
|
||||
|
||||
// Row Height für bessere Slider-Darstellung
|
||||
tableView->verticalHeader()->setDefaultSectionSize(40);
|
||||
|
||||
// Selection
|
||||
tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||
//tableView->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
|
||||
// Edit Trigger - Klick zum Editieren
|
||||
tableView->setEditTriggers(QAbstractItemView::DoubleClicked |
|
||||
QAbstractItemView::SelectedClicked);
|
||||
|
||||
layout->addWidget(tableView);
|
||||
|
||||
// Signal für Änderungen
|
||||
connect(model, &QStandardItemModel::dataChanged, this,
|
||||
[](const QModelIndex& topLeft, const QModelIndex& bottomRight) {
|
||||
if (topLeft.column() ==1) {
|
||||
int row = topLeft.row();
|
||||
int value = topLeft.data(Qt::DisplayRole).toInt();
|
||||
qDebug() << "Zeile" << row << "wurde auf" << value << "gesetzt";
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
#endif // MAINWINDOW_H
|
||||
Reference in New Issue
Block a user