2012-04-09 4 views
3

Ich bin neu in Qt und ich versuche, ein DockWidget zu erstellen, das auf der rechten Seite des Fensters dockt. Ich stelle eine maximale und minimale Breite für das Dock ein (wie Sie im folgenden Code sehen werden). Dies funktioniert, wenn der Dock-Widget mit Qt::LeftDockWidgetArea hinzugefügt wird, aber wenn es mit Qt::RightDockWidgetArea hinzugefügt wird, soll das Dock „gepolstert“, um die Mitte des Fensters, wie folgt aus: The red area shows the dock widget boundary. QDockWidget Größe falsch, wenn auf der rechten Seite des Hauptfensters angedockt

Ich bin wahrscheinlich nicht Sizing das Dock in der richtige Weg .. Hier ist der Code für dieses Fenster:

int main(int argv, char** args) 
{ 
    QApplication app(argv, args); 
    QMainWindow window; 
    QDesktopWidget* desktop = QApplication::desktop(); 
    //Docks 
    QDockWidget* propertyDock = new QDockWidget("",&window); 
    QWidget* propertyDockContents = new QWidget; 

    //This sets the window in the center of the screen. 
    int wWidth = 800; int wHeight = 600; 
    window.setGeometry(QRect((desktop->width()-wWidth)/2 , (desktop->height()-wHeight)/2 ,wWidth,wHeight)); 

    propertyDock->setAllowedAreas(Qt::RightDockWidgetArea); 
    propertyDockContents->setMaximumWidth(200); 
    propertyDockContents->setMinimumWidth(20); 

    propertyDock->setWidget(propertyDockContents); 
    window.addDockWidget(Qt::RightDockWidgetArea,propertyDock); 

    window.show(); 

    return app.exec(); 
} 

gibt es einen „richtigen“ Weg, dies zu tun?

Antwort

3

Wie in der Dokumentation angegeben:

Hinweis: ist ein Hauptfenster ohne zentrale Widget erstellen nicht unterstützt. Sie müssen ein zentrales Widget haben, auch wenn es nur ein Platzhalter ist.

Verwandte Themen