С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
2 / 4 / 0
Регистрация: 18.12.2012
Сообщений: 81
1

Как запретить перерисовывать фон?

08.09.2023, 16:28. Показов 320. Ответов 3

Author24 — интернет-сервис помощи студентам
Задача такая:

Примерно 10 раз сек надо ставить точку в случайном месте окна.
При этом ранее нарисованные точки должны оставаться на своих местах.
По таймеру вызываю this->update () и фон стирается. Но на экране остаётся только последняя точка, предыдущие стираются.(((


В Windows на Win Api я бы просто запретил перерисовку фона и очередную точку ставил бы поверх уже нарисованного.

case WM_ERASEBKGND: return 0;

Как этот весьма нехитрый трюк реализовать на Qt в Ubuntu?

З.Ы. Пробовал делать фон прозрачным (transparent), но старые точки все равно затираются.

Добавлено через 24 минуты
Как выяснилось, задача решается весьма просто:

C++
1
2
3
4
5
6
7
8
MainWindow::MainWindow (QWidget *parent)
    : QMainWindow(parent)
    , ui (new Ui::MainWindow)
{
    ui->setupUi (this);
    setAttribute (Qt::WA_NoSystemBackground); // не перерисовывать фон
...
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.09.2023, 16:28
Ответы с готовыми решениями:

Как не перерисовывать фон pictureBox при движении объекта
Приветствую всех. Имеется сетка (по типу шахматной доски), которая рисуется на событии Paint. На...

Как правильно перерисовывать контролы?
Наследую от того же button, но не могу перерисовать его никак. В событии перерисовке вроде-бы пишу,...

Как перерисовывать GDI+ у формы
У меня есть форма на котором рисую, но когда проведу поверх другое окно, то рисунок стирается, а...

как использовать перерисовывать control с invalidate
в общем такая фигня у меня выводится типа карты и я пытаюсь на неё показать типа движение точки...

Как перерисовывать окно в Win32 API?
Здравствуйте, при нажатие срелочки вверх должен выводиться текст, но возникает ошибка(использована...

3
фрилансер
5852 / 5390 / 1103
Регистрация: 11.10.2019
Сообщений: 14,389
08.09.2023, 16:29 2
Цитата Сообщение от sma63 Посмотреть сообщение
Как запретить перерисовывать фон?
никак. Надо рисовать только нужные точки
1
2 / 4 / 0
Регистрация: 18.12.2012
Сообщений: 81
08.09.2023, 17:04  [ТС] 3
После выполнения:

C++ (Qt)
1
setAttribute (Qt::WA_NoSystemBackground);
вполне работает и позволяет дорисовывать предыдущее изображение без затирания фоном.
0
фрилансер
5852 / 5390 / 1103
Регистрация: 11.10.2019
Сообщений: 14,389
08.09.2023, 18:31 4
sma63, этот костыль поможет до первого перемещения, сворачивания или перекрывания окна. Хотя, в десятке и 11 что-то более хитро намучено с HDC, поэтому это увидеть можно будет, возможно, сложнее. Зато в семёрке и ранее чётко ломалось

Добавлено через 1 минуту
правильно это делается так - есть массив точек. Фон рисуется, точки вываливаются разом одной функцией (QPainter::drawPoints)
1
08.09.2023, 18:31
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.09.2023, 18:31
Помогаю со студенческими работами здесь

Как правильно перерисовывать формы? Как это делается в нормальных программах? Нужна идея!
Хочется более-менее грамотный графический интерфейс сделать, чтобы на нормальную программу было...

Как перерисовывать график на JPanel из другого потока?
На JPanel с помощью GeneralPath нарисована и залита некоторая область. По щелчку мыши в...

InvalidateRect или как перерисовывать с новыми значениями?
Вечер добрый, есть такая вот функция, она принимает значения по нажатию кнопок, и задает, что...

Как перерисовывать JTable при появлении JFrame
Доброго времени суток. подскажите пожалуйста какой слушатель событий отслеживает вызов у окна...

Как называется функция позволяющая не перерисовывать программу
Срочно нужно


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Блоги программистов
Подброка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­хро­н­н­ы­й счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9 Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru