【问题标题】:Qt : How to alternate alignment of a QTextEdit in a QVBoxLayout?Qt:如何在 QVBoxLayout 中交替对齐 QTextEdit?
【发布时间】:2021-07-13 02:33:21
【问题描述】:

我想在布局中添加 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 都是靠左对齐的。

我的问题有解决方案吗?

【问题讨论】:

  • 你想在 VBox 中将你的五个小部件布局为(好的,所以我不能在 cmets 中绘制表格)先右后左,还是你想要 文本编辑的内容是右对齐还是左对齐?
  • .. 对于内容,您要调用text1-&gt;setAlignment(Qt::AlignRight),而不是布局上的对齐方式。要将小部件推送到 VBoxLayout 内,您需要在每个 TextEdit 周围使用 QHboxLayout 来进行对齐(或使用 3 列网格)

标签: c++ qt layout alignment qvboxlayout


【解决方案1】:

刚刚检查了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, 0, Qt::AlignRight);
    }
    else
    {
        lt->addWidget(text1, 0, Qt::AlignLeft);
    }
}

【讨论】:

    猜你喜欢
    • 2011-03-04
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多