3

私は Qt が初めてで、ウィンドウの右側にドッキングする DockWidget を作成しようとしています。ドックの最大幅と最小幅を設定します (以下のコードを参照)。これは、ドック ウィジェットが で追加されQt::LeftDockWidgetAreaた場合に機能しますが、 で追加された場合、Qt::RightDockWidgetAreaドックは次のようにウィンドウの中央に「パディング」されます。 赤い領域は、ドック ウィジェットの境界を示しています。

おそらく、ドックのサイズを正しく設定していません。このウィンドウのコードは次のとおりです。

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();
}

これを行う「正しい」方法はありますか?

4

2 に答える 2

3

ドキュメントに記載されているように:

注: 中央ウィジェットのないメイン ウィンドウの作成はサポートされていません。単なるプレースホルダーであっても、中央のウィジェットが必要です。

于 2012-04-09T02:31:52.080 に答える