c++ - QLabel “break”单词如果太长

标签 c++ string qt widget label

如果这些单词过长,是否有办法允许QLabel打破单词?我见过

q_label->setWordWrap(true)
但是它可以使用空格,但是如果单个单词太长,则会溢出...
我想要类似word-break: break-all的网站开发工具
我也看过QTextDocument,但是不允许有固定的宽度和不固定的高度

最佳答案

据我所知,没有现成的方法可以自动将单词分为QLabel的几行。
您可以编码或以固定长度在文本中手动插入换行符或空格,因此QLabel::setWordWrap()可以正常工作。

QLabel *pLabel = new QLabel(this);
pLabel->setText("first line\nsecond line\nthird line\n");
pLabel->setWordWrap(true);
您也可以使用QTextDocument。它的setDefaultTextOption方法允许您设置QTextOptionQTextOption::setWrapMode(QTextOption::WrapAnywhere)允许在一行的任意点换行。

关于c++ - QLabel “break”单词如果太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63587018/

相关文章:

c - 在 C 格式字符串中,退格键\b 在\n 之前不起作用

C++ 结构成员字符串数组,需要一个表达式

c++ - C++中的C函数

java - 使用 matcher() 匹配字符串中的小数

r - 将列表列转换为字符串

c++ - 构建 Qt 5.3.0 时出错

c++ - 如何确定我正在编译的 MacOS 版本?

c# - STL C++ 和 C# 容器之间的映射

linux - 使用 protobuf 2.6 构建的应用程序无法在 Ubuntu 17.10 上运行

c++ - 未定义对`Histogram::Histogram(QWidget*) 的引用