如何使QTextBrowser具有最大的尺寸?
How to make QTextBrowser to have biggest size?
本文关键字:何使 QTextBrowser 更新时间:2023-10-16
我有QScrollArea,它有QVBoxLayout,我在其中放置小部件,其中一个是QTextBrowser,我想使QTextBrowser具有其内容的大小并删除其滚动条。 我继承了QTextBrowser,更改了sizePolicy,隐藏了滚动条并覆盖了sizeHint((,如下所示:
TextBrowserWidget::TextBrowserWidget(QWidget* parent)
: QTextBrowser(parent)
{
setSizePolicy(
QSizePolicy::Preferred,
QSizePolicy::Minimum);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
}
QSize TextBrowserWidget::sizeHint() const
{
if (document()) {
auto docSize = document()->size();
return QSize(docSize.width(), docSize.height() + 10);
} else
return QTextBrowser::sizeHint();
}
但这需要延迟,起初小部件变小,1-2 秒后变大。 我不确定这是否是好的解决方案。正确的方法是什么?
TextBrowserWidget::TextBrowserWidget(QWidget* parent)
: QTextBrowser(parent)
{
setSizePolicy(
QSizePolicy::Minimum,
QSizePolicy::MinimumExpanding);
connect(
this, &TextBrowserWidget::textChanged,
this, &TextBrowserWidget::updateSize);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
}
QSize TextBrowserWidget::sizeHint()
{
updateSize();
return QTextBrowser::sizeHint();
}
void TextBrowserWidget::updateSize()
{
document()->setTextWidth(viewport()->size().width());
auto docSize = document()->size().toSize();
setMinimumWidth(docSize.width());
setMinimumHeight(docSize.height() + 10);
}
相关文章:
- 如何在 C 中正确使用 libiconv 使其不会报告"Arg list too long"?
- std::vector的包装器,使数组的结构看起来像结构的数组
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如何在全屏模式下(在OpenGL中)使背景透明
- 找到两对数字,使它们的乘积的绝对差最小化
- C++:如何使函数只返回作为列表一部分的字符串
- Python中的for循环与C++有何不同
- c++使用foreach使数组为null
- 使外部项目可用于find_package CMake
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 是否可以在C++中使变量真正只读
- 有可能使shared_ptr协变吗
- 使lambda不可复制/不可移动
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 如何使用OpenMP使这个循环并行
- 根据变量使Qt UI中的复选框为已选中/未选中
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- 如何使基类的运算符对基类的可变参数数可见(请参阅下面的代码)?
- 如何使QTextBrowser具有最大的尺寸?
- C++11编译器何时会使RVO和NRVO优于移动语义和常量引用绑定