Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Два метода рисования
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
leff
не так давно начал изучение Qt... суть вопроса вот в чем... я делаю графический интерфейс, все элементы управления наследуются от стандартных элементов управления Qt, но должны выглядеть в едином рисованном стиле... для этого я создаю классы наследники для каждого элемента управления, перегружаю paintEvent... мои задачи можно в принципе решить двумя путями... первый путь: рисовать элементы управления с помощью QPainter... второй путь: нарисовать элементы управления в виде кистей в другой программе (в виде кистей, так как элементы управления могут принимать разный цвет) и рисовать ими... первый вариант выглядит более предпочтительным, так как в случае изменения размера элемента он будет верно отрисовываться без потери качества, но на практике некоторые моменты рисования реализовать сложно... второй вариант в принципе адекватен, но как лучше загружать и хранить эти кисти пока не понятно... вопрос в том, какой вариант из двух вы считаете наилучшим и почему? то есть лучше рисовать элементы QPainter'ом или вставлять на их место готовые картинки из файлов? какие преимущества и недостатки, вы считаете, есть у обоих методов? каковы они в отношении скорости?
ufna
я чет не понял - а во втором случае картинки ты как вставлять будешь?

Суть в том, что ни тот, ни другой метод - не решение проблемы, а лишь эрзац-варианты.

И:

1) все рисуется через QPainter
2) чем больше рисуется уже нарисованного в картинку ранее - тем быстрее (кэширование)
3) все зависит от конкретных случаев
leff
Цитата(ufna @ 29.12.2010, 20:28) *
я чет не понял - а во втором случае картинки ты как вставлять будешь?

что значит как? например используя QPixmap...
а почему ни тот, ни второй вариант не является решением?
igor_bogomolov
leff, здесь на самом деле не понятно что посоветовать. Вы бы приложили примеры того что рисовать собираетесь, там уже виднее станет
Litkevich Yuriy
leff, изучи таблицы стилей в Qt. Возможно оно тебе подойдёт.
leff
Нажмите для просмотра прикрепленного файла
вот набросал пример элемента аналога QDial по первому методу (цвета "maroon")... сначала рисуется шкала (с помощью drawArc), затем рисуется эллипс с градиентной кистью (базовый цвет и осветленный базовый цвет), затем рисуется указатель - линия (переношу систему координат в центр, разворачиваю эту систему координат в зависимости от значения, рисую перпендикулярную линию)... при этом элемент зависим от трех цветов (цвет шкалы и обводки, базовый цвет элемента, цвет указателя)... можно было бы сделать по второму методу: нарисовать шкалу, элемент и указатель допустим в черно-белые png-файлы с прозрачностью и использовать их как кисти в соответствии с цветами...

то, что я сделал - самое простое... а вот допустим такую крутилочку (как на картинке, только вид сверху) нарисовать получится много кода, даже если придумать как:

:unsure:
igor_bogomolov
leff, так всё элементарно. Если бы сразу картинку дали, то и ответ быстрее получили бы.

На самом деле вам нужно использовать векторную графику в формате svg. Вооружитесь каким-нибудь вменяемым редактором, например inkscape и доками по QtSvg
В качестве примера скачайте qt-embedded-widgets, там есть примеры аналогичных виджетов
leff
да, спасибо, похоже это то, что мне нужно! :clapping:
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.