【问题标题】:How to make pages look in QTextEdit or QPlainTextEdit如何使页面在 QTextEdit 或 QPlainTextEdit 中显示
【发布时间】:2018-01-18 15:17:02
【问题描述】:

我正在尝试使 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 位于彼此之上,因此看起来很糟糕。

所以我做错了什么导致滚动条无法正常工作,以及如何让每个QTextEdit 具有良好的页面外观,尺寸合适,让我看起来像 Microsoft word 或 pdf 之类的有页面的东西。

此外,如果我正在尝试做的事情有更好的想法或解决方案,那么如果已经实现的小部件或库有这个会更好。

【问题讨论】:

    标签: c++ qt qt5 qtextedit qplaintextedit


    【解决方案1】:

    您不必替换 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 
    

    【讨论】:

      猜你喜欢
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 2022-08-16
      • 2013-10-09
      • 2014-10-08
      • 2016-04-15
      • 2019-04-22
      • 2011-07-20
      相关资源
      最近更新 更多