c++ - 更改帮助窗口的大小以适合文本

标签 c++ qt

我想更改帮助窗口的大小以适合文本的大小,但不知道如何继续。

这是我的代码:

QTextEdit *help = new QTextEdit(this);
help->setWindowFlags(Qt::Window); 
help->setReadOnly(true);
////
QFile file(":/help.txt");
QTextStream stream ( &file );
QString line;

if (!file.open (QIODevice::ReadOnly))
{
    //some error report
}

while( !stream.atEnd() ) {
    line = stream.readLine();
    help->append(line);
}
file.close(); 

help->show();

最佳答案

您需要一些有关文本的布局信息,因为从理论上讲,它可以在非常非常长的一行中呈现。

因此,我的目标是文本的某个目标宽度,而所有比该宽度更宽的文本都将被换行。现在,您需要的是此类文本的高度。

我的建议是您使用QTextDocument,如上所述设置宽度,插入所有文本并使用QTextDocument::size获取大小。这样,您就可以获得测量值,并可以根据这些测量值调整窗口大小(当然,添加边距、填充等)。

关于c++ - 更改帮助窗口的大小以适合文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36308553/

相关文章:

javascript - 在 QML 中加载页面时运行 javascript 函数

c++ - 如何从 QTreeview 中删除所有行和子行

c++ - 仅列出目录中的文件夹

c++ - 在初始化类类型时,C++ 可以进行多少次隐式转换来将一种用户定义类型转换为另一种类型?

C++访问冲突写入位置0xCCCCCCCC

c++ - 在 Windows 上将 TagLib 编译成 Qt C++ 项目

c++ - 在 Windows 上编译静态 QT 应用程序

c++ - 非实例化模板成员的编译时错误而不是链接时错误

c++ - SDL 2.0 内存泄漏

c++ - Qt Creator 中的代码传输