1

我需要构建一个基于QTextDocument.

我的小部件.h

class MyWidget: public QFrame
{
public:
   explicit MyWidget( QWidget *p_parent );

private:
   QTextDocument m_textDocument;
};

我的小部件.cpp

MyWidget::MyWidget( QWidget *p_parent ) : QFrame( p_parent )
{
  QVBoxLayout *layout = new QVBoxLayout( this );
  layout->setMargin( 0 );
  layout->setSpacing( 0 );

  m_textDocument = new QTextDocument( this );
  layout->addWidget( m_textDocument );   // does not work
  layout->addLayout(m_textDocument->documentLayout());  // I have tried this, but incompatible
}

我不能addWidget因为QTextDocument是一个对象。如何构建我的小部件?

4

1 回答 1

4

您不使用 QTextDocument 作为小部件,因为 Document 是idea在内存中的文档,它没有 Graphicsl 表示。

如果您正在寻找文档的可视化表示,您可以使用 QTextEdit,如下所示:

auto *textEdit = new QTextEdit(parent);
textEdit->setDocument(myTextDocument);
layout->addWidget(textEdit);
于 2019-12-19T12:53:09.563 回答