Qt:如何在 QVBoxLayout 中交替对齐 QTextEdit?
Posted
技术标签:
【中文标题】Qt:如何在 QVBoxLayout 中交替对齐 QTextEdit?【英文标题】:Qt : How to alternate alignment of a QTextEdit in a QVBoxLayout? 【发布时间】: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->setAlignment(Qt::AlignRight)
,而不是布局上的对齐方式。要将小部件推送到 VBoxLayout 内,您需要在每个 TextEdit 周围使用 QHboxLayout 来进行对齐(或使用 3 列网格)
【参考方案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);
【讨论】:
以上是关于Qt:如何在 QVBoxLayout 中交替对齐 QTextEdit?的主要内容,如果未能解决你的问题,请参考以下文章
当 QProgressBar 存在时如何居中对齐 QPushButton?