QDockWidget Ausrichtungsproblem

Alles rund um die Programmierung mit Qt
Antworten
DyXe
Beiträge: 17
Registriert: 11. Dezember 2009 11:34
Wohnort: Spay bei Koblenz
Kontaktdaten:

QDockWidget Ausrichtungsproblem

Beitrag von DyXe »

Hallo zusammen :)

Ich habe mein aktuelles Projekt eigentlich fertig, allerdings möchte ich nun noch ein paar kleine Schönheitsänderungen vornehmen. Ich wollte QDockWidgets einbauen, damit man die Fenster anders anordnen oder auch herausschieben kann. Allerdings gibts beim größer ziehen der Anwendung ein Problem. Die Widgets verändern sich in der Länge, aber nicht in der Breite. Hat jemand eine Idee wie man das ändern kann? Hier 2 Screenshots.

Normal:
Bild

Länger&Breiter gezogen:
Bild

das linke ist docked left
und die anderen beiden docked right
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QDockWidget Ausrichtungsproblem

Beitrag von Christian81 »

Und in der Mitte ist das um was man die Dockwidgets normalerweise anordnet - also wo ist das Problem.
Du suchst wohl eher Splitter ...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

Re: QDockWidget Ausrichtungsproblem

Beitrag von DBGTMaster »

Hallo,

würde gerne deinen Source Code in betracht ziehen, bin in letzter Zeit schon dabei, zu studieren, wie man am besten in QT mit SQLs umgeht (sprich: automatische Fehlerbehandlung co.)..
Würde daher interessieren, wie du das gelöst hast.

danke :)!
DyXe
Beiträge: 17
Registriert: 11. Dezember 2009 11:34
Wohnort: Spay bei Koblenz
Kontaktdaten:

Re: QDockWidget Ausrichtungsproblem

Beitrag von DyXe »

Werde es nun mit Splittern versuchen zu lösen, dann kann man zwar die Fenster nicht mehr herausziehen, aber das ist ja nicht so wichtig.

Leider darf ich dir den Quelltext nicht geben, da es ein Projekt ist, welches ich für die Firma mache.
Mit QListView und QTableView ist dies allerdings sehr einfach.

Zuerst erstellst du ein QStringListModel und weist ihm die Tabellen der Datenbank zu:

Code: Alles auswählen

QStringListModel stringListModel = new QStringListModel(this);
stringListModel->setList(database.tables());
Anschließend verbindest du dein QListView mit dem QStringListModel

Code: Alles auswählen

ui.listView->setModel(stringListModel);
Nun musst du nur noch die gewünschten Tabellen in einem QTableView öffnen, welche in meinem Fall die angeklickte Tabelle ist:

Code: Alles auswählen

/****************************************************************************/
/*	on_listView_clicked(const QModelIndex &index)							*/
/*																			*/
/*	Function:	fill the tableView with the contents						*/
/*																			*/
/****************************************************************************/
void MainClass::on_listView_clicked(const QModelIndex &index)
{
    //clean up the tableModel
    if(this->mTableModel)
    {
        delete this->mTableModel;
        this->mTableModel=NULL;
    }

    //create a new tableModel
    mTableModel = new QSqlTableModel(this,database);
    ui.tableView->setModel(mTableModel);


    //clean up the tableView
    ui.tableView->clearSpans();

    //set the tableModel
    mTableModel->setTable(index.data().toString());
    mTableModel->select();
}
Ich hoffe ich konnte dir etwas helfen :)

lg Daniel
Antworten