UOS QTextEdit设置换行和滚动条(bug自动换行时右侧个别字符被遮盖)

一、环境

UOS_x86 / QT5 / C++

二、qtextEdit 换行设置

  1. 下图在ui界面lineWrapMode这个参数可以设置换行相关:NoWrap是不换行、WidgetWidth是自动换行(按textEdit的宽度换行)、下面两个是可以自定义每行的宽度,如果选了这两个,就可通过下面LineWrapColumnOrWidth参数指定宽度。这两项也可以通过代码设置:
    ui->textEdit->setLineWrapMode(QTextEdit::FixedPixelWidth);
    ui->textEdit->setLineWrapColumnOrWidth(285);

UOS QTextEdit设置换行和滚动条(bug自动换行时右侧个别字符被遮盖)_第1张图片

  1. 有时如果文字内容中英文符号等大杂烩的话,lineEdit可能会在奇怪的地方换行,为解决这种情况可以通过setWordWrapMode()设置换行类型。
ui->textEdit->setWordWrapMode(QTextOption::WrapAnywhere);

UOS QTextEdit设置换行和滚动条(bug自动换行时右侧个别字符被遮盖)_第2张图片

三、滚动条设置

  1. 如下图,在ui设计界面可以通过这两个参数设置水平和垂直滚动条的开关。(不自动换行的时候才会有水平滚动条,二者不共存)

UOS QTextEdit设置换行和滚动条(bug自动换行时右侧个别字符被遮盖)_第3张图片

  1. UOS中QTextEdit默认的滚动条是下图这样透明的,又丑又宽,自动换行的时候会出现最右边的字符被滚动条遮盖的情况。

UOS QTextEdit设置换行和滚动条(bug自动换行时右侧个别字符被遮盖)_第4张图片

这个问题也好解决,设置一下滚动条的样式就可以,不过不知道为什么我在ui界面上修改样式表不起作用,最后是通过代码修改成功的。

#ifdef WIN32
#else
    //QScrollBar{}设置滚动条的样式; QScrollBar::handle:vertical{}设置滚动块的样式
    ui->textEdit->verticalScrollBar()->setStyleSheet( "QScrollBar{ background: white; width:5px}"
                                                      "QScrollBar::handle:vertical{ background-color: #86dbcb; min-height: 60px ;width:30px }"
                                                     );
#endif

UOS QTextEdit设置换行和滚动条(bug自动换行时右侧个别字符被遮盖)_第5张图片

滚动条样式设置参考:
QT 中自定义QScrollBar 风格

你可能感兴趣的:(bug,qt5,c++)