Seite 1 von 1
QTableView QSqlTableModel Reihenfolge der Spalten festlegen
Verfasst: 1. Juni 2008 11:54
von Grisu80
Hallo zusammen,
ich habe ein kleines Bücherdatenbank-Programm geschrieben. Ich zeige die Informationen zu den Büchern in mehreren Spalten an.
Jetzt möchte ich gerne die Reihenfolge der Spalten in dem View ändern.
Der User gibt die Reihenfolge vor.
Gibt es eine Methode:
setColOrder(QStringList colNames)
Oder wie implementiere ich sowas selber?
Gruß,
Grisu
Verfasst: 1. Juni 2008 17:58
von Grisu80
Eine erste Lösung habe ich gefunden

aber noch nicht ganz das was ich öchte
Ich kann jetzt manuell die Reihenfolge der Spalten ändern. Beim Beenden Speichern und beim Starten wieder laden:
Code: Alles auswählen
MasterOfBooks::MasterOfBooks(QString pfad, QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
//tvBooks ist mein Tableview
//Hiermit kann man nun die Spalten verschieben
ui.tvBooks->horizontalHeader()->setMovable(true);
//Hiermit lade ich die alte Einstellungen des Headers
QSettings settings("books.ini",QSettings::IniFormat);
ui.tvBooks->horizontalHeader()->restoreState(settings.value("spaltenSort").toByteArray());
}
MasterOfBooks::~MasterOfBooks()
{
QSettings settings("books.ini",QSettings::IniFormat);
//Hier speicher ich die aktuellen Einstellungen des Headers
settings.setValue("spaltenSort",ui.tvBooks->horizontalHeader()->saveState());
}
Ich habe den verschiedenen Spalten in meinem QSqlTableModel mit setHeaderData die Bezeichnungen der Spalten verpasst. Mithilfe dieser Bezeichnungen oder der Position in der SQL-Tabelle möchte ich gerne die Position ändern, aber das scheint so einfach nicht zu gehen?
Hat jemand eine Idee?