gpt4 book ai didi

c++ - 如何使用拆分器

转载 作者:行者123 更新时间:2023-11-30 05:30:10 25 4
gpt4 key购买 nike

我准备了一个例子来展示我对分离器的调查。我在 mainWindow 中有 9 个文本编辑(没有布局)。我想创建动态布局。它必须是动态的,因为a) 用户选择应该显示多少元素。b) 我不想使用隐藏元素,因为它们的分离器仍然存在。c) 我知道如何在 QTDesigner 中创建静态布局

我的问题是手动布局。将来我需要展示例如前 2 个文本编辑。然后是 4 个 texEdits 等...

这个例子有一个问题,splitter5 不是全窗口大小。 MainWindow 边距与 splitter5 无关。

你知道哪里出了问题吗?此外,我不确定这是否是正确的方法。也许还有其他更好的解决方案?

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSplitter>
#include <QGridLayout>

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

QSplitter *splitter1 = new QSplitter(Qt::Horizontal);
QSplitter *splitter2 = new QSplitter(Qt::Horizontal);
QSplitter *splitter3 = new QSplitter(Qt::Horizontal);
QSplitter *splitter4 = new QSplitter(Qt::Vertical);
QSplitter *splitter5 = new QSplitter(Qt::Vertical);


splitter1->addWidget(ui->textEdit);
splitter1->addWidget(ui->textEdit_2);
splitter1->addWidget(ui->textEdit_3);

splitter2->addWidget(ui->textEdit_4);
splitter2->addWidget(ui->textEdit_5);
splitter2->addWidget(ui->textEdit_6);

splitter3->addWidget(ui->textEdit_7);
splitter3->addWidget(ui->textEdit_8);
splitter3->addWidget(ui->textEdit_9);

splitter4->addWidget(splitter1);
splitter4->addWidget(splitter2);

splitter5->addWidget(splitter3);
splitter5->addWidget(splitter4);

this->layout()->addWidget(splitter5);
}

MainWindow::~MainWindow()
{
delete ui;
}

问题用箭头标记 enter image description here

最佳答案

而不是使用

this->layout()->addWidget(splitter5);

您必须将拆分器添加到中央小部件。 (参见 QMainWindow)。

如果您只使用拆分器,您可以将其设置为中央小部件:

this->setCentralWidget(splitter5);

如果您需要更多元素,请创建一个容器作为中央小部件并添加您自己的布局。

关于c++ - 如何使用拆分器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36109485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com