Qt:如何创建一个可滚动的,所有者绘制的窗口小部件

沙绍尔姆

我需要创建一个可滚动的,所有者绘制的小部件,其行为QPlainTextEdit与使用自动换行的文本非常相似,因为高度取决于宽度,在某种意义上,随着内容宽度的减小,内容高度也会增加。

最好的方法是什么?我当时正在考虑将我的QWidget-derived课程放在内QScrollArea,但该课程QPlainTextEdit是从派生的QScrollArea,应该走那条路线吗?

另外,我只想绘制中的可见区域paintEvent(),否则会很浪费。

现在,我正在检查的代码QPlainTextEdit,但它相当复杂且不易阅读,因此,如果有人知道在网络上更简单的代码示例,您可以给我一个链接,这将有很大帮助。

沙绍尔姆

我将发布想出的解决方案。它不是最好的,但大多数情况下都有效。

我并没有从QAbstractScrollArea最后得出结论,而是只是将我的小部件嵌入QScrollArea具有垂直布局的,效果很好。

我实现了resizeEvent()(我从QPlainTextEdit实现中看到了这一点),每次宽度改变时,我都会重新计算高度,然后将小部件的最小高度设置为此。由于布局的工作原理,我设置了最小高度。

void MyWidget::resizeEvent(QResizeEvent *e)
{
    // If the widget's width has changed, we recalculate the new height
    // of our widget.
    if (e->size().width() == e->oldSize().width()) {
        return;
    }

    setMinimumHeight(calculateHeightFromWidth(e->size().width()));
}

对于仅绘制可见区域,请参阅获取QPainter的可见区域。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Qt:如何创建一个可滚动的,所有者绘制的窗口小部件

来自分类Dev

如何查找在另一个域上创建的文件的所有者?

来自分类Dev

QT C ++-如何在另一个类中引用窗口小部件

来自分类Dev

QT:如何关闭同一个小部件的多个窗口?

来自分类Dev

Ruby on rails:创建具有多个用户和一个所有者的组

来自分类Dev

为什么即使创建多个窗口小部件,可定制窗口小部件的绑定仍然占据所有焦点?

来自分类Dev

无法从Qt中的另一个窗口小部件访问窗口小部件中的控件

来自分类Dev

Django查询:如何通过帐户所有者创建的博客帖子查询帐户页面?又名从一个链接到另一个

来自分类Dev

Flutter-如何制作一个自定义小部件,以将页脚添加到接收到的可滚动小部件中?

来自分类Dev

如何仅允许机器人所有者运行一个命令(我)

来自分类Dev

如何获得另一个功能的所有者功能

来自分类Dev

QScrollArea,如何使中央窗口小部件可滚动?

来自分类Dev

在流程构建器中,如何创建一个新条件来检查案例所有者是否已更改以及所有者是否不是队列

来自分类Dev

wordpress小部件的用途是什么?以及如何创建一个新的小部件?

来自分类Dev

如何使用一个滚动条滚动两个平行的文本小部件?

来自分类Dev

Grails如何为所有者创建所有者的一对多关系创建表单

来自分类Dev

如何从父窗口小部件更改一个子窗口小部件的状态,而子窗口小部件是单独文件中的单独类?

来自分类Dev

如何创建与窗口小部件滚动同步的标签栏?

来自分类Dev

创建函数以在按下不同的键时打包一个小部件并删除所有其他小部件

来自分类Dev

在Tkinter中滚动一个小部件与另一个小部件

来自分类Dev

如何创建预先的多个可嵌入窗口小部件?

来自分类Dev

如何添加有状态的窗口小部件或在底部的另一个屏幕中查看

来自分类Dev

如何从另一个类触发有状态窗口小部件中的函数(onUnityAdsFinish时)?

来自分类Dev

窗口小部件的两个实例只有一个实例在工作

来自分类Dev

在另一个窗口小部件包含的窗口小部件中绘图

来自分类Dev

如何使用提供程序同时将文本导航到一个小部件而不是屏幕上的所有小部件?

来自分类Dev

没有主窗口的应用程序-许多小部件一个一显示

来自分类Dev

没有主窗口的应用-多个小部件一个一显示

来自分类Dev

当一个窗口小部件进入另一个窗口小部件的某个距离/区域内时,如何触发信号?

Related 相关文章

  1. 1

    Qt:如何创建一个可滚动的,所有者绘制的窗口小部件

  2. 2

    如何查找在另一个域上创建的文件的所有者?

  3. 3

    QT C ++-如何在另一个类中引用窗口小部件

  4. 4

    QT:如何关闭同一个小部件的多个窗口?

  5. 5

    Ruby on rails:创建具有多个用户和一个所有者的组

  6. 6

    为什么即使创建多个窗口小部件,可定制窗口小部件的绑定仍然占据所有焦点?

  7. 7

    无法从Qt中的另一个窗口小部件访问窗口小部件中的控件

  8. 8

    Django查询:如何通过帐户所有者创建的博客帖子查询帐户页面?又名从一个链接到另一个

  9. 9

    Flutter-如何制作一个自定义小部件,以将页脚添加到接收到的可滚动小部件中?

  10. 10

    如何仅允许机器人所有者运行一个命令(我)

  11. 11

    如何获得另一个功能的所有者功能

  12. 12

    QScrollArea,如何使中央窗口小部件可滚动?

  13. 13

    在流程构建器中,如何创建一个新条件来检查案例所有者是否已更改以及所有者是否不是队列

  14. 14

    wordpress小部件的用途是什么?以及如何创建一个新的小部件?

  15. 15

    如何使用一个滚动条滚动两个平行的文本小部件?

  16. 16

    Grails如何为所有者创建所有者的一对多关系创建表单

  17. 17

    如何从父窗口小部件更改一个子窗口小部件的状态,而子窗口小部件是单独文件中的单独类?

  18. 18

    如何创建与窗口小部件滚动同步的标签栏?

  19. 19

    创建函数以在按下不同的键时打包一个小部件并删除所有其他小部件

  20. 20

    在Tkinter中滚动一个小部件与另一个小部件

  21. 21

    如何创建预先的多个可嵌入窗口小部件?

  22. 22

    如何添加有状态的窗口小部件或在底部的另一个屏幕中查看

  23. 23

    如何从另一个类触发有状态窗口小部件中的函数(onUnityAdsFinish时)?

  24. 24

    窗口小部件的两个实例只有一个实例在工作

  25. 25

    在另一个窗口小部件包含的窗口小部件中绘图

  26. 26

    如何使用提供程序同时将文本导航到一个小部件而不是屏幕上的所有小部件?

  27. 27

    没有主窗口的应用程序-许多小部件一个一显示

  28. 28

    没有主窗口的应用-多个小部件一个一显示

  29. 29

    当一个窗口小部件进入另一个窗口小部件的某个距离/区域内时,如何触发信号?

热门标签

归档