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 都在左边对齐。

我的问题有解决方案吗?

解决方法

刚刚检查 Qt doc 我发现我只需要在 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,Qt::AlignRight);
    }
    else
    {
        lt->addWidget(text1,Qt::AlignLeft);
    }
}