Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331

Вывести изображение QPixmap через QPainter. Код не компилируется

04.03.2014, 16:45. Показов 7272. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я хочу вывести изображение QPixmap через QPainter и нельзя передавать this в конструктор делаю другим способ и тоже ничего не видно почему в данном коде возникают ошибки можете скинуть правильный вариант рабочий этого кода?

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <QApplication>
#include <QtGui>
#include <QPixmap>
#include <QWidget>
#include <QPainter>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
QPainter paint(this);
   QPixmap tt("C:\\Users\\Public\\Pictures\\Sample Pictures\\yy.jpg");
 
    paint.drawPixmap(0,0,tt);
 
    return a.exec();
}
 Комментарий модератора 

Используйте теги для вставки кода в свои сообщения!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2014, 16:45
Ответы с готовыми решениями:

QPixmap и QPainter
Всем привет! Мне нужно сдвинуть робота, изображённого на картинке,(из начала координат) вправо относительно карты, тоже изображённой на...

Загрузить изображение, используя QPixmap
Всем привет. Может ктонибудь подсказать, как загрузить изображение из интернета по ссылке. Пробовал использовать методы приведенные ниже, к...

Не компилируется код. Как правильно вывести супер в консоль?
class Pet{ Pet(String name){ } } class Cat extends Pet{ int age = 13; Cat(){ super(&quot;Рич&quot;); } public int...

19
 Аватар для Aneron
166 / 164 / 27
Регистрация: 20.04.2010
Сообщений: 607
04.03.2014, 17:02
Читай документацию.
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
04.03.2014, 17:19  [ТС]
на Painter документацию так все вроде как у меня можее подсказать что все же не так?
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
04.03.2014, 17:22
Вы не создали виджет и пытаетесь на нем рисовать.
У main нет this, так как это не класс.
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
04.03.2014, 17:26  [ТС]
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <QApplication>
#include <QtGui>
#include <QPixmap>
#include <QWidget>
#include <QPainter>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget wgt;
QPainter paint(&wgt);
   QPixmap tt("C:\\Users\\Public\\Pictures\\Sample Pictures\\yy.jpg");
 
    paint.drawPixmap(0,0,tt);
   wgt.show();
    return a.exec();
}

а такой код создает пустой виджет но не рисует на нем почему?

Добавлено через 49 секунд
через begin end тоже не работает что тут не так?

 Комментарий модератора 

Еще раз проигнорируешь замечания касательно тегов или какие-либо другие, получишь предупреждение!
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
04.03.2014, 17:29
На виджете нужно в paintEvent'е рисовать, а не так как вы.
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
04.03.2014, 17:34  [ТС]
а можете скинуть небольшой пример как это будет выглядеть?
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
04.03.2014, 17:37
http://qt-project.org/doc/qt-4... awing.html
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
04.03.2014, 18:51  [ТС]
а как потом paintEvent(QPaintEvent*) вызвать в main() ей же надо событие передать как будет выглядеть в таком случае main() если я создал свою paintEvent(QPaintEvent*) в которой рисование и хочу ее вызвать?Как передастся событие в функцию?

Добавлено через 12 минут
в какой момент формируется событие как его передать в функцию?
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
04.03.2014, 18:53
paintEvent вызывается сам при необходимости(ну или через update/repaint в этом же классе), и из main вызывать его не выйдет
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
04.03.2014, 19:19  [ТС]
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
#include <QApplication>
#include <QtGui>
#include <QPixmap>
#include <QWidget>
#include <QPainter>
#include <QPaintEvent>
void PaintEvent(QPaintEvent*pe)
{
    QPainter painter;
 
   QRect r(40,40,100,100);
   if(pe->region().contains(r))
   {
       painter.drawRect(r);
   }
}
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
 
 QWidget wgt;
 wgt.resize(700,980);
 
 
 wgt.show();
    return a.exec();
}
почему такой тогда код создает только пустой виджет а ничего не рисует как его исправить?

Добавлено через 7 минут
что в этом коде не правильно?
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
04.03.2014, 19:21
метод paintEvent не принадлежит ни одному классу
а должен принадлежать вашему виджету

посмотрите код из примера что я вам давал, там все написано
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
04.03.2014, 19:27  [ТС]
а понятно то есть нужно свой класс создать производный от виджета и в нем определить paintEvent свою далее в main() создать обьект своего виджета сделать виджет show() и все будет работать да?
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
04.03.2014, 19:34
Правильно
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
04.03.2014, 20:31  [ТС]
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <QApplication>
#include <QtGui>
#include "paintev.h"
#include <QWidget>
 
 
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
 
 paintevjj wgt;
 wgt.resize(700,980);
 
 
 wgt.show();
    return a.exec();
}
 
 
 
#ifndef PAINTEV_H
#define PAINTEV_H
#include <QPainter>
#include <QPaintEvent>
#include <QWidget>
class paintevjj : public QWidget
{ Q_OBJECT
 
    void PaintEvent(QPaintEvent*pe);
 
 
 
 
 
};
#endif // PAINTEV_H
 
 
 
 
#include "paintev.h"
 
void paintevjj:: PaintEvent(QPaintEvent*)
{
    QPainter painter(this);
 painter.setPen(QPen(Qt :: black,5,Qt :: SolidLine));
   QRect r(40,40,100,100);
   painter.drawRect(r);
}
здесь мейн хедер и срр моего класса но рисования все равно че то нет хоть эта функция и определена в этом классе?единственно сдесь конструктор не определен но это не должно ни как влиять все равно создается только пустой виджет что тут не так?

 Комментарий модератора 

Ты издеваешься ? используй теги для вставки кода! Видать одного предупреждения тебе мало...


Добавлено через 3 минуты
кстати как правильно оформлять код не подскажите?

Добавлено через 56 секунд
я просто копирую вставляю извините за глупый вопрос но какие теги для оформления кода?
0
Автор FAQ
 Аватар для Чистый
2733 / 1429 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
04.03.2014, 20:34
у вас в форме где вы пишите текст, сверху есть надписи С С++QT С++ и т.д. вот нажмите на них и увидите что вставились теги, текст между ними будет выделен как код. который вы можете наблюдать после того как я правлю ваши сообщения.
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
04.03.2014, 20:38  [ТС]
здесь мейн хедер и срр моего класса но рисования все равно че то нет хоть эта функция и определена в этом классе?единственно сдесь конструктор не определен но это не должно ни как влиять все равно создается только пустой виджет что тут не так?это по поводу верхнего кода что я выложил?
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
04.03.2014, 20:42
Вы меня убиваете такими непонятными вопросами. В аттаче готовый пример.
Вложения
Тип файла: zip paint-example.zip (1.2 Кб, 72 просмотров)
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
04.03.2014, 22:19  [ТС]
какие есть заголовочные файлы в Qt для работы с видео?
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
04.03.2014, 22:19
Цитата Сообщение от yura91 Посмотреть сообщение
какие есть заголовочные файлы в Qt для работы с видео?
1 тема = 1 вопрос
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.03.2014, 22:19
Помогаю со студенческими работами здесь

Вычислить значения функций, далее вывести в файл в виде таблицы. Код не компилируется
Нужно вычислить значения функций, далее вывести в файл в виде таблицы. Почему программы про компиляции обрывается? Объясните,пожалуйста ...

В формате .cpp код компилируется, а в .c не компилируется
1).Подскажите почему в формате .cpp код компилируется, а в .c не компилируется 2). Как сделать так, чтобы компилировалось в .c? ...

Как поменять изображение на кнопке через код?
Здравия всем! Дело такое, создаётся кнопка так: &lt;Button x:Name=&quot;button_window_state&quot; HorizontalAlignment=&quot;Right&quot;...

Какой код спрячет изображение через две секунды
Имеется окно приложения. Необходимо, чтобы при запуске приложение высвечивалось изображение, и после 2 секунд исчезало. Код я так...

Вывести загруженное изображение через JavaScript
Нужно вывести загруженное изображение в HTML коде, через JavaScript. Загрузка файла через input. Загрузка файла в 93 строке, вывод в 50. ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru