c++ - 如何更新停靠角?

标签 c++ qt

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

它们已显示,但当左侧停靠小部件 float 时,中央小部件和右侧小部件之间存在空白。 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);
}

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

谢谢。

最佳答案

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

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

关于c++ - 如何更新停靠角?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8773409/

相关文章:

c++ - 您会为经验丰富的程序员推荐什么 C++ 教程,该程序员对该语言有一些零散的了解?

c++ - map 的查找功能得到错误的结果

c++ - 将十六进制数据输出到文件的正确方法是什么?

java - 如何将opencv代码转换为javacv代码

qt - 设置 Loader 项目属性

c++ - 为什么我不能引用指向实例化对象函数的指针?

c++ - Qt - qmake -project,为什么卡住了?

c++ - Qt 的 slot(?) 插入冗余命名空间到 connect

c++ - 定时器qt c++输出的非线性结果

c++ - 如何在 C++ 中处理多个冲突类型?