如何使页面在 QTextEdit 或 QPlainTextEdit 中看起来
How to make pages look in QTextEdit or 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);
这个思路很简单就是用scrollbar container加垂直布局,每次需要页面的时候新建一个QTextEdit
然后加到scrollbar的垂直布局中
这里的问题是,每当我添加一个新页面时,QTextEdit
我添加的太小了,滚动条永远不会在上面工作,所以 QTextEdit
会相互重叠,所以它看起来很糟糕。
所以我做错了什么导致滚动条不工作,以及如何使每个 QTextEdit
的页面看起来很好,大小合适,可以给我类似 Microsoft word 或 pdf 的外观有页面。
此外,如果有更好的想法或解决方案来解决我正在尝试做的事情,如果有一个已经实现的小部件或库有这个会更好。
您不必替换 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
我正在尝试制作 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);
这个思路很简单就是用scrollbar container加垂直布局,每次需要页面的时候新建一个QTextEdit
然后加到scrollbar的垂直布局中
这里的问题是,每当我添加一个新页面时,QTextEdit
我添加的太小了,滚动条永远不会在上面工作,所以 QTextEdit
会相互重叠,所以它看起来很糟糕。
所以我做错了什么导致滚动条不工作,以及如何使每个 QTextEdit
的页面看起来很好,大小合适,可以给我类似 Microsoft word 或 pdf 的外观有页面。
此外,如果有更好的想法或解决方案来解决我正在尝试做的事情,如果有一个已经实现的小部件或库有这个会更好。
您不必替换 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