Как сделать растр на фоне панели / tabPane / se - PullRequest
1 голос
/ 04 ноября 2011

Я пытаюсь создать что-то, куда вы можете добавить разные вещи, например Qt Creator (нет, я не хочу создавать новый, но мне нужна функция этого).Вы перетаскиваете некоторые элементы и помещаете их в любое место на панели вкладок.Моя проблема сейчас заключается в том, как сделать сетку / растр в фоновом режиме.Это должно выглядеть примерно так:

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

Я имею в виду эти точки на заднем плане.Если я сделаю их с двумя циклами for, это займет несколько часов, и это неэффективно или что-то еще.Должно быть более эффективное и намного более простое решение.

Я программирую на c ++ с Qt в качестве платформы.Пожалуйста, дайте мне несколько ссылок или что-нибудь еще, что я могу использовать.

1 Ответ

1 голос
/ 04 ноября 2011

Вы можете:

  • ограничить перерисовку регионом, который действительно должен быть обновлен, как объяснено в QWidget::paintEvent документации ,
  • заполните контур QPoint в своих циклах вместо рисования точек и нарисуйте их все с помощью QPainter::drawPoints после цикла,
  • кэширует результат в QPixmap с прозрачностью и использует его повторно, если размер окна не изменился ( пример из Qt Quaterly ).

Конечно, вам следует провести некоторое тестирование, чтобы выяснить, получаете ли вы что-либо вообще, выполняя любую из этих оптимизаций.

...