2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418

Ошибка от QPainter - Painter not active

02.03.2022, 01:13. Показов 1861. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
пишет ошибку: QPainter::drawRects: Painter not active
как её исправить?

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
void car::keyPressEvent(QKeyEvent *event) {
    QPainter carPainter(this);
    QPen pen_2(Qt::black, 1);
 
    switch(event->key()){
    case Qt::Key_Left:
    {
        carPainter.setPen(pen_2);
        carPainter.setBrush(QBrush(Qt::yellow));
        carPainter.drawRect(500,520,15,30);
        carPainter.drawRect(885,520,15,30);
        update();
        break;
    }
 
    case Qt::Key_Right:
    {
        carPainter.setPen(pen_2);
        carPainter.setBrush(QBrush(Qt::gray));
        carPainter.drawRect(500,520,15,30);
        carPainter.drawRect(885,520,15,30);
        update();
        break;
    }
    }
 
 
    QWidget::keyPressEvent(event);
 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.03.2022, 01:13
Ответы с готовыми решениями:

QPainter painter not active
Пытаюсь нарисовать прямоугольник с линиями на нем. Итог -- QPainter::begin: Paint device returned engine == 0, type: 1,...

Painter not active
Собственно простейшая программа в Qt но почему то не хочет рисовать. int main(int argc, char** argv) { QApplication app(argc,...

Painter no active
Добрый вечер! Я пользуюсь виджетом, который в последствии добавляю к mainwindow, этот виджет служит вкладкой QTabWidget. При попытке...

33
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418
03.03.2022, 00:56  [ТС]
Студворк — интернет-сервис помощи студентам
Алексей1153, всмысле? это как понять
0
фрилансер
 Аватар для Алексей1153
6500 / 5731 / 1134
Регистрация: 11.10.2019
Сообщений: 15,339
03.03.2022, 00:58
Цитата Сообщение от volver Посмотреть сообщение
//фары
    carPainter.setPen(pen_2);
    carPainter.setBrush(MyColor);
    carPainter.drawRect(500,520,15,30);
    carPainter.drawRect(885,520,15,30);
имя лучше дать не MyColor, а более подходящее, например headlightColor
0
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418
03.03.2022, 01:04  [ТС]
Алексей1153, а в keyPressEvent MyColor задавать тип QBrush или другой?
0
фрилансер
 Аватар для Алексей1153
6500 / 5731 / 1134
Регистрация: 11.10.2019
Сообщений: 15,339
03.03.2022, 01:10
volver, QColor headlightColor; - это и будет изменяемое поле класса
0
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418
03.03.2022, 01:23  [ТС]
Алексей1153, а почему появляется ошибка в этой строке?
C++ (Qt)
1
carPainter.setBrush(MyColor);
0
фрилансер
 Аватар для Алексей1153
6500 / 5731 / 1134
Регистрация: 11.10.2019
Сообщений: 15,339
03.03.2022, 06:41
volver, попробуй так

C++ (Qt)
1
carPainter.setBrush(QBrush(MyColor));
и смени имя поля на более говорящее headlightColor
0
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418
03.03.2022, 13:44  [ТС]
Алексей1153, всё равно не видит headlightColor
а вообще, я так объявил headlightColor?

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void car::keyPressEvent(QKeyEvent *event) {
 
    QColor headlightColor;
 
    switch(event->key()){
    case Qt::Key_Left:
    {
 
 
        headlightColor=Qt::yellow;//меняем содержимое поля класса
             update();
        break;
    }
 
    case Qt::Key_Right:
    {
 
        headlightColor=Qt::gray;//меняем содержимое поля класса
             update();
 
        break;
    }
    }
 
 
    QWidget::keyPressEvent(event);
 
}
0
фрилансер
 Аватар для Алексей1153
6500 / 5731 / 1134
Регистрация: 11.10.2019
Сообщений: 15,339
03.03.2022, 14:01
Цитата Сообщение от volver Посмотреть сообщение
я знаю, что такое поле класса


а это разве поле класса ? Это локальная переменная
0
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418
03.03.2022, 14:03  [ТС]
Алексей1153, я уже понял, что не туда написал
но всё-же, на нажатие клавиш перерисовка не срабатывает, и фары сразу закрашиваются жёлтым
0
фрилансер
 Аватар для Алексей1153
6500 / 5731 / 1134
Регистрация: 11.10.2019
Сообщений: 15,339
03.03.2022, 14:06
volver, приложи текущий проект в ZIP, чтобы в угадайку не играть
0
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418
03.03.2022, 14:09  [ТС]
Алексей1153,
Вложения
Тип файла: zip carAndTrean1.zip (3.9 Кб, 6 просмотров)
0
фрилансер
 Аватар для Алексей1153
6500 / 5731 / 1134
Регистрация: 11.10.2019
Сообщений: 15,339
03.03.2022, 14:20
volver, само поле нужно инициализировать серым

car.h
C++ (Qt)
1
2
3
...
QColor headlightColor{Qt::gray};
...
а из отрисовки убрать это
C++ (Qt)
1
2
3
4
5
    //фары_2
    carPainter.setPen(pen_2);
    carPainter.setBrush(QBrush(Qt::yellow));
    carPainter.drawRect(500,520,15,30);
    carPainter.drawRect(885,520,15,30);
и строка линяя ещё
C++ (Qt)
1
carPainter.setBrush(QBrush(Qt::gray));
Добавлено через 2 минуты
кучу подряд идущих drawLine надо заменять на drawLines
0
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418
03.03.2022, 14:36  [ТС]
Алексей1153, спасибо, получилось

а можете помочь и с движением машинки
просто не совсем понимаю, как выделить главное окно в отдельный класс в файлах .h и .cpp
0
фрилансер
 Аватар для Алексей1153
6500 / 5731 / 1134
Регистрация: 11.10.2019
Сообщений: 15,339
03.03.2022, 14:58
volver, при нажатии на клавишу нужно немного сдвигать виджет машины. Вот она и поедет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.03.2022, 14:58

Ошибка с QPainter
Доброго времени суток. Компилятор ругается на меня, а я не могу понять за что. Вот код: ui->setupUi(this); ...

Ошибка с QPainter
Помогите пожалуйста исправить

Cisco ASA Active/Active, Active/Standby
Добрый день! У меня назрел вопрос. Когда имеется построенный Cluster ASA, в каком либо из режимов, какое кол-во лицензий на обновление...

Cisco ASA Active/Standby, Active/Active
Добрый день! Возник вопрос не жизненно важный, но в гугле ответа не нашел) А какое максимальное расстояние может быть межу двумя...

Ошибка Active Server Pages ошибка 'ASP 0201'
Здравствуйте! Люди помогите иправить ошибку Active Server Pages ошибка 'ASP 0201' на сервере Windows 2000server, суть ошибки...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Опции темы

Новые блоги и статьи
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru