• 14096阅读
  • 5回复

关于QTextEdit的水平居中显示【已解决】 [复制链接]

上一主题 下一主题
离线luoyes
 

只看楼主 倒序阅读 楼主  发表于: 2010-05-20
— 本帖被 午小夜 执行取消加亮操作(2010-06-13) —
比如一段文字存储在一个QString里面,里面包含多行文字,如果调用QTextEdit的setText函数把文字传递给textEdit然后再调用
QTextEdit 的setALignment函数把对齐方式设置为水平居中那么显示出来的效果是只有第一行是水平居中的,其余的都是左对齐。
该怎么办呢?

QString qsText = "123\n456\n789";
QTextEdit *pTextEdit = new QTextEdit;
pTextEdit->setText( qsText );
pTextEdit->setAlignment( Qt::AlignHCenter );
pTextEdit->show();

[ 此帖被luoyes在2010-06-13 16:06重新编辑 ]
离线luoyes

只看该作者 1楼 发表于: 2010-05-20
qsText.replace( "\n", "<br>" );
qsText.prepend( "<center>" );
qsText.append( "</center>" );

It works,but is there a better method?
离线benbenmajia

只看该作者 2楼 发表于: 2010-05-20
QString qsText = "123\n456\n789";
QTextEdit *pTextEdit = new QTextEdit;
pTextEdit->setText( qsText );
pTextEdit->setAlignment( Qt::AlignHCenter );
pTextEdit->show();
你这样做的时候是把整个text传给了ptextedit,仍旧是一个字符串,其中的\n字符必然是要换行的!
如果需要每行都居中,需要多做些工作
安然.....
离线paranoid
只看该作者 3楼 发表于: 2010-05-20
pTextEdit->document()->setDefaultTextOption(QTextOption(Qt::AlignHCenter));
离线luoyes

只看该作者 4楼 发表于: 2010-06-13
引用第3楼paranoid于2010-05-20 12:06发表的  :
pTextEdit->document()->setDefaultTextOption(QTextOption(Qt::AlignHCenter));




效果很好,谢谢了
离线翩翩布衣

只看该作者 5楼 发表于: 2011-04-15
如果是列居中怎么做呢
快速回复
限100 字节
 
上一个 下一个