如何在QTextEdit或QPlainTextEdit中查看页面

时间:2018-01-18 15:17:03

标签: c++ qt qt5 qtextedit qplaintextedit

我试图在QTextEdit中查看页面或使用它来查看页面。

每页每行的行数有限,每行的字符数量有限,首先是页面的外观和感觉。
所以我尝试使用这段代码。

QVBoxLayout *layout =new QVBoxLayout();
ui->scrollArea->setLayout(layout);
ui->scrollArea->setWidgetResizable(true);

QTextEdit *edit = new QTextEdit("hello world");
edit->setSizePolicy(QSizePolicy::QSizePolicy::Preferred,QSizePolicy::Preferred);
QTextEdit *edit1 = new QTextEdit("hello world");
edit1->setSizePolicy(QSizePolicy::QSizePolicy::Preferred,QSizePolicy::Preferred);
QTextEdit *edit2 = new QTextEdit("hello world");
edit2->setSizePolicy(QSizePolicy::QSizePolicy::Preferred,QSizePolicy::Preferred);
// i added more
layout->addWidget(edit);
layout->addWidget(edit1);
layout->addWidget(edit2);

这个想法很简单,只需使用滚动条容器并添加垂直布局,每次我需要一个页面时,创建一个新的QTextEdit并将其添加到滚动条中的垂直布局。

这里的问题是,每当我添加新页面时,QTextEdit我都会将其添加得太小而滚动条从不对其进行操作,以便QTextEdit在彼此之上,以便它看起来很糟糕。

Image

所以我做错了以致滚动条不起作用,以及如何使每个QTextEdit采用具有良好尺寸的良好页面外观给我看起来像Microsoft word或pdf这样的页面

如果有一个更好的想法或解决方案我想要做的事情,如果有一个已经实现的小部件或库有这个会更好。

1 个答案:

答案 0 :(得分:0)

您不必替换QScrollArea的现有布局,您需要做的是创建窗口小部件,并在该窗口小部件中设置布局。在该小部件之后,您必须通过setWidget()方法将其放在QScrollArea中,如果您希望显示的高度更大,则设置最小尺寸。

QWidget *contentWidget = new QWidget;

QVBoxLayout *layout =new QVBoxLayout(contentWidget);
ui->scrollArea->setWidget(contentWidget);
ui->scrollArea->setWidgetResizable(true);

QTextEdit *edit = new QTextEdit("hello world");
edit->setMinimumHeight(200);
// create others QTextEdit
layout->addWidget(edit);
// add the QTextEdits