#c #qt #background #grid #raster
#c #qt #фон #сетка #растр
Вопрос:
Я пытаюсь создать что-то, куда вы можете добавлять разные вещи, например, Qt Creator (нет, я не хочу создавать новый, но мне нужна функция этого). Вы перетаскиваете некоторые элементы и размещаете их в любом месте TabPane. Моя проблема сейчас в том, как создать сетку / растр на заднем плане. Это должно выглядеть примерно так:
Я имею в виду эти точки на заднем плане. Если я создам их с помощью двух циклов for , это займет часы, и это неэффективно или что-то еще. Должно быть более эффективное решение и намного проще.
Я программирую на c с Qt в качестве фреймворка. Пожалуйста, дайте мне какие-нибудь ссылки или что-нибудь еще, что я могу использовать.
Ответ №1:
Вы можете:
- ограничьте перерисовку областью, которая действительно нуждается в обновлении, как описано в
QWidget::paintEvent
документации, - заполните контейнер
QPoint
в своих циклах вместо рисования точек и нарисуйте их все с помощьюQPainter::drawPoints
после цикла, - кэшируйте результат в
QPixmap
с прозрачностью и повторно используйте его, если размер окна не изменился (пример из Qt Quaterly).
Конечно, вам следует провести некоторое тестирование, чтобы увидеть, получаете ли вы что-либо вообще, выполняя любую из этих оптимизаций.