QDockWidget --> Größe verändern

Alles rund um die Programmierung mit Qt
Antworten
Paddy82
Beiträge: 9
Registriert: 19. August 2005 08:30

QDockWidget --> Größe verändern

Beitrag 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
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag 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
Paddy82
Beiträge: 9
Registriert: 19. August 2005 08:30

Beitrag 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
Paddy82
Beiträge: 9
Registriert: 19. August 2005 08:30

Beitrag 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);
}
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag 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
Antworten