【问题标题】:Grab the entire QTextEdit into QPainter将整个 QTextEdit 抓取到 QPainter
【发布时间】:2018-04-13 13:31:33
【问题描述】:

我正在尝试使用以下代码将整个 QTextEdit 小部件抓取到 QPainter 中:

QTextEdit *textEdit;
QPainter painter;
textEdit->render(&painter);
painter->restore();

这是我能够抓取的内容。但是,我想将小部件的隐藏部分也抓取到 Qpainter 中。有什么建议么?

【问题讨论】:

  • “整个”和“没有滚动条”是不一致的......滚动条是整个小部件的一部分。
  • 我可能会尝试只抓取视口,即textEdit->viewport()->render(&painter);
  • 我遇到的问题是当我尝试渲染时,只渲染了部分小部件。它不会抓取整个小部件。
  • 我在使用视口时也遇到了同样的问题。
  • 对于“小部件的隐藏部分”,您的意思是由于滚动而未显示的文本?

标签: c++ qt qpainter qtextedit


【解决方案1】:

如果您需要将内容保存到图像,您需要使用QTextDocument::drawContents。像这样的:

QImage img;
QPainter p( &img );
auto doc = textEdit->document();
doc->drawContents( &p, textEdit->viewport()->size() );

【讨论】:

    猜你喜欢
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    相关资源
    最近更新 更多