Seite 1 von 1

QDockWidget --> Größe verändern

Verfasst: 19. August 2005 08:40
von Paddy82
Hallo alle zusammen,

ich habe ein Problem bei dem mir auch auf www.qtforum.org keiner helfen konnte.

Ich habe eine Klasse, die von QMainWindow erbt.
Ich habe das centralWidget gesetzt und ein QListWidget als QDockWidget.
Ich möchte, dass sich dieses DockWidget links (also in der Qt::LeftDockWidgetArea) befindet. Nun ist die Größe, die voreingestellt ist leider zu klein, um den gesamten Inhalt einzustellen. Wenn ich zur Laufzeit mit der Maus die Grenze verschiebe, ist es möglich die Größe zu ändern. Wenn ich allerdings zur Compilezeit die Größe vergrößern will (z.B. mit resize) klappt es nicht.

Hier ist mein Code:

Code: Alles auswählen

void MyMainWidget::createLayout
{    
    listWidget = new QListWidget();
    fertigListWidget = new QListWidget();
    
    links = new QTabWidget();
    links->addTab(listWidget,"Zu bearbeitende Datei(en)...");
    links->addTab(fertigListWidget,"Bereits bearbeitete Datei(en)...");
    
        
    leftDock = new QDockWidget();
    leftDock->setWidget(links);
    leftDock->setFeatures(QDockWidget::NoDockWidgetFeatures);
    leftDock->resize(QSize(800,leftDock->height())); // bringt nichts
    addDockWidget(Qt::LeftDockWidgetArea,leftDock);
     
    editor = new QTextEdit;
    editor->setReadOnly(true);
    editor->setFont(QFont("Lucida Console", 10));

    setCentralWidget(editor);
}
Weiß einer von Euch wieso das nicht klappt, bzw. wie ich die Größe verändere?

Ich habe schon folgendes probiert:
  • - resized the centralWidget
    - resized the contents of the centralWidget
    - resized the DockWidget
    - resized the contents of the DockWidget

Verfasst: 19. August 2005 19:31
von ArneStocker

Code: Alles auswählen

QDockWindow *pDockWindow;
...
pDockWindow->setFixedExtentHeight(...);
pDockWindow->setFixedExtentWidth(...);
Ich habe mich auch ewig mit diesem Problem rumgeschlagen :cry: Aber damit geht's. :) Entgegen dem ersten Eindruck wird damit nur die bevorzugte Breite (oder Höhe) gesetzt, das Dockwindow bleibt veränderbar

Gruss Arne

Verfasst: 22. August 2005 09:36
von Paddy82
aber die Klasse QDockWidget hat keine Methode setFixedExtentHeight

ich arbeite mit der Version 4.0.0 (Open source edition)

wie funktioniert das genau?

Vielen Dank,
Patrick

-------------------

habe es herausgefunden:

- setFixedWidth / Height ohne Extent

Gruß Patrick

Verfasst: 22. August 2005 10:18
von Paddy82
hab mich zu früh gefreut....

Also ich habe nun mit der Methode setFixedWidth(600); die Breite des QDockWidgets geändert. Er zeigt das Fenster auch größer, allerdings stürzt das Programm ab, wenn man mit der Maus das Fenster größer oder kleiner macht. laut reference setzt die Methode die MaximumWidth des Fensters um, aber warum funktioniert der ResizeEvent (mit Maus) nicht mehr?

Wie könnte ich alternativ das vergrößern/ verkleinern mit der Maus verbieten, so dass der Benutzer wirklich die Feste Größe hat??

Aktueller Quelltext:

Code: Alles auswählen

void MyMainWidget::createLayout()
{
    listWidget = new QListWidget();
    fertigListWidget = new QListWidget();
    
    links = new QTabWidget();
    links->addTab(listWidget,"Zu bearbeitende Datei(en)...");
    links->addTab(fertigListWidget,"Bereits bearbeitete Datei(en)...");
            
    leftDock = new QDockWidget();
    leftDock->setWidget(links);
    leftDock->setFeatures(QDockWidget::NoDockWidgetFeatures);
    leftDock->setFixedWidth(700); 

    leftDock->updateGeometry();
    leftDock->update(); 

    addDockWidget(Qt::LeftDockWidgetArea,leftDock);
}

Verfasst: 22. August 2005 20:33
von ArneStocker
Paddy82 hat geschrieben:hab mich zu früh gefreut....
tut mir leid, da kann ich nichts zu sagen. Ich arbeite mit Qt 3.2.1 und da funktioniert alles und es stürzt auch nichts ab. Für mich ein weiterer Grund mit der Portierung noch ein wenig zu warten :shock:

Gruss Arne