如何更新停靠角?

时间:2012-01-07 21:53:49

标签: c++ qt

我正在制作Qt的应用程序,它有一个中央小部件,右侧停靠小部件和左侧停靠小部件。它们的尺寸是固定的。

显示它们,但是当左停靠窗口小部件浮动时,中央窗口小部件和右窗口小部件之间存在空白。 https://twitter.com/#!/hizz_GI/status/155768124321435648/photo/1

请您告诉我删除空格的方法吗?

感谢您抽出宝贵时间回答我的问题。

代码:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    textEdit = new QTextEdit;
    textEdit->setFixedSize(100, 150);
    setCentralWidget(textEdit);

    creatDocks();
    layout()->setSizeConstraint(QLayout::SetFixedSize);
}

void MainWindow::creatDocks()
{
    leftTextEdit = new QTextEdit;
    rightTextEdit = new QTextEdit;

    leftDock = new QDockWidget(tr("Left Dock Widget"));
    rightDock = new QDockWidget(tr("Right Dock Widget"));

    leftDock->setFixedSize(100, 150);
    leftDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
    leftDock->setWidget(leftTextEdit);

    rightDock->setFixedSize(150, 150);
    rightDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
    rightDock->setWidget(rightTextEdit);

    addDockWidget(Qt::LeftDockWidgetArea, leftDock);
    addDockWidget(Qt::RightDockWidgetArea, rightDock);
}

我找到了解决方法。 这是一种在没有textEdit-> setFixedSize()和layout() - > setSizeConstraint()的MainWindow的paintEvent时调用menuWidget() - > adjustSize()和adjustSize()的方法。 但它很贵。什么时间适当的电话? 这是合适的吗?

感谢。

1 个答案:

答案 0 :(得分:0)

可能,由于您将所有3个窗口小部件设置为固定大小,当您的左侧窗口小部件浮动时,中央窗口小部件正确地向左移动,但由于它和右侧窗口小部件具有固定大小,因此它们未调整大小填补中间的空间。

当中央或右侧小部件浮动而不是左小部件时,您是否也有同样的问题?