Qt Qpainter не активен, при запуске приложения
Нужно реализовать функцию поворота изображения. но при поверке функции изображение становится просто белым.
QApplication::processEvents();
QPixmap ship("image"); QPixmap rotate(ship.size()); QPainter painter(&rotate); painter.setRenderHint(QPainter::Antialiasing); painter.setRenderHint(QPainter::SmoothPixmapTransform); painter.setRenderHint(QPainter::HighQualityAntialiasing); painter.translate(rotate.size().width()/2, rotate.size().height()/2); painter.rotate(90.0); painter.translate(rotate.size().width()/2, rotate.size().height()/2); painter.drawPixmap(0,0, ship); painter.end(); imageLabel->setPixmap(rotate);
вот реализация paintEvent
void MainWindow::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.beginNativePainting(); painter.endNativePainting();
}
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
AD
- Akiv Doros
- Қар. 11, 2024, 2:58 Т.Қ.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:50ұпай,
- Бағалау ұпайлары-4
m
- molni99
- Қаз. 26, 2024, 1:37 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:80ұпай,
- Бағалау ұпайлары4
m
- molni99
- Қаз. 26, 2024, 1:29 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:20ұпай,
- Бағалау ұпайлары-10
Соңғы пікірлер
ИМ
Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Енді форумда талқылаңыз
Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
NSProjectМаусым 4, 2022, 3:49 Т.Ж.
IscanderCheҚаз. 31, 2024, 3:43 Т.Қ.
Вот вы знаете, если бы вы хотя бы поздоровались.
Правила хорошего тона в интернете никто не отменял.
Да и не стол заказов вам тут, чтобы вы таким образом обращались к сообществу.
Полностью согласен с Евгением, неувожительное обращение совершенно.
Извините, за мою бестактность и не проявление элементарных правил воспитанности в обществе. Писалось с целью сказать четко и по делу, т.к. очень много вожусь с этой проблемой, на которой завязаны еще три функции, а так как я новичок на Qt, да и честно сказать не программировала то никогда, но работу сделать должна. то мне не понятно в чем моя проблема.
Приношу свои извинения.
Добрый день!
Всё пучком, чётко и по делу - это хорошо, ценю, но без фанатизма ;-)
По сути вопроса, QPainter - вещь довольно капризная и не всегда работает везде корректно, в основном только в методах paint, да инициализировать его нужно объектом, в котором происходит отрисовка, в вашем случае - это paintEvent(),
Вижу, что так и сделали
но весь код, который находится в processEvents(), по моему мнению, лучше переносить в переопределённый метод paintEvent().
Посмотрите, как это сделано вот в этой статье о QPainter
То есть сделайте всю отрисовку в paintEvent(), а processEvents() не трогайте. И подробнее опишите, что код должен делать. Это просто вращение какой-то картинки?
Спасибо за помощь, теперь стало более понятнее. Да, просто вращение, т.е. я загружаю картинку в qlabel и должна реализовать операции над ней,вращение одна из них.
QLabel... я бы тогда иначе попробовал...
Вы можете загрузить изображение в QPixmap, у которого есть метод transformed(), туда передаётся матрица преобразований. А возвращает данный метод уже трасформированный QPixmap, при этом исходный не изменяется. Вы можете устанавливать в QLabel, как раз трасформированный QPixmap.
При этом не понадобится переопределение метода paintEvent вообще.