1

我尝试创建一些东西,你可以在其中放置不同的东西,比如 Qt Creator(不,我不想创建一个新的,但我需要它的功能)。您将一些元素拖放到 tabPane 中的任意位置。我现在的问题是如何在后台制作网格/栅格。它应该类似于:

http://i.stack.imgur.com/QOA4K.png

我的意思是背景中的那些点。如果我用两个 for 循环来制作它们,则需要数小时,而且效率不高或其他任何事情。必须有一种更有效且更容易的解决方案。

我正在使用 Qt 作为框架在 C++ 中编程。请给我一些链接或其他我可以使用的东西。

4

1 回答 1

1

你可以:

  • QWidget::paintEvent如文档中所述,将重绘限制在真正需要更新的区域,
  • 在循环中填充一个容器QPoint而不是绘制点,并QPainter::drawPoints在循环之后将它们全部绘制出来,
  • QPixmap如果窗口大小没有改变(来自 Qt Quaterly 的示例),则以透明方式将结果缓存并重用它。

当然,你应该做一些测试,看看你是否通过这些优化获得了什么。

于 2011-11-04T11:01:22.503 回答