QTextEdit如何设置行间距

时间:2022-05-16 06:10:13
百度了N久只找到了一种方法: 就是在textChange信号激发的时候执行下面的代码。 

for ( QTextBlock block = view->document()->begin();
block.isValid(); block = block.next(), ++lineCount ) {

QTextCursor tc = QTextCursor(block);
QTextBlockFormat fmt = block.blockFormat();
if(fmt.topMargin() != 1 || fmt.bottomMargin() != 1) {
fmt.setTopMargin(1);
fmt.setBottomMargin(1);
tc.setBlockFormat( fmt );


上面的代码  如何是按了回车产生的换行行间距确实会变大,但是如果是输入一段很长的内容,超过的内容会自动跑到下一行,这样生成的换行 行间距就不会变大。
应该怎么做呢?  QTextEdit不会是没有这样的功能吧?

4 个解决方案

#1


 QTextEdit edit;
    edit.setText("fdgfdsgdsg");
    edit.setPlainText(edit.toPlainText() + "\n\n\n\n");
    edit.moveCursor(QTextCursor::End);

#2


通过 "\n\n\n\n"增加\n数来调整换行间距,

#3


引用 1 楼 LazyDreamHunter 的回复:
 QTextEdit edit;
    edit.setText("fdgfdsgdsg");
    edit.setPlainText(edit.toPlainText() + "\n\n\n\n");
    edit.moveCursor(QTextCursor::End);



引用 2 楼 LazyDreamHunter 的回复:
通过 "\n\n\n\n"增加\n数来调整换行间距,


我做的是富文本编辑器 就像word那样的  你们这明显没办法实现。

#4


可以看看 QTextBlockFormat、 QTextFormat等QTextxxx相关的类;

#1


 QTextEdit edit;
    edit.setText("fdgfdsgdsg");
    edit.setPlainText(edit.toPlainText() + "\n\n\n\n");
    edit.moveCursor(QTextCursor::End);

#2


通过 "\n\n\n\n"增加\n数来调整换行间距,

#3


引用 1 楼 LazyDreamHunter 的回复:
 QTextEdit edit;
    edit.setText("fdgfdsgdsg");
    edit.setPlainText(edit.toPlainText() + "\n\n\n\n");
    edit.moveCursor(QTextCursor::End);



引用 2 楼 LazyDreamHunter 的回复:
通过 "\n\n\n\n"增加\n数来调整换行间距,


我做的是富文本编辑器 就像word那样的  你们这明显没办法实现。

#4


可以看看 QTextBlockFormat、 QTextFormat等QTextxxx相关的类;