我正在通过 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/