首页 > 解决方案 > Qt:如何在 QVBoxLayout 中交替对齐 QTextEdit?

问题描述

我想在布局中添加 QTextEdit 小部件并交替对齐

QVBoxLayout *lt = new QVBoxLayout;

for(int i=0;i<5;i++)
{
    text1 = new QTextEdit;
    text1->setText("Hello world !" + QString::number(i));
    text1->setMaximumSize(100,30);
    lt->addWidget(text1);
    lt->setAlignment(Qt::AlignLeft);

    if(i%2)
    {
        lt->setAlignment(Qt::AlignRight);
    }
    else
    {
        lt->setAlignment(Qt::AlignLeft);
    }
}

setLayout(lt);

但是,QTextEdits 都在左侧对齐。

我的问题有解决方案吗?

标签: c++qtlayoutalignmentqvboxlayout

解决方案


只需检查Qt 文档,我发现在 QVBoxLayout 中添加小部件时我只需要添加一些参数这是代码:

QVBoxLayout *lt = new QVBoxLayout;

for(int i=0;i<5;i++)
{
    text1 = new QTextEdit;
    text1->setText("Hello world !" + QString::number(i));
    text1->setMaximumSize(100,30);
    
    if(i%2)
    {
        lt->addWidget(text1, 0, Qt::AlignRight);
    }
    else
    {
        lt->addWidget(text1, 0, Qt::AlignLeft);
    }
}

推荐阅读