Russian Qt Forum
Ноябрь 24, 2024, 11:30
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Рисование линий
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Рисование линий (Прочитано 3268 раз)
dr_Begemot
Гость
Рисование линий
«
:
Май 24, 2010, 11:39 »
Есть некоторый цвет фона QColor. В программе есть возможность менять цвет фона на любой произвольный. Так же в программе можно выделять некоторую область, при этом, рисуется прямоугольник выделения. Посоветуйте, как сделать так, чтобы прямоугольник выделения всегда был хорошо виден не зависимо от цвета фона? Т.е. нужно найти такой цвет прямоугольника выделения, который бы был лучше всего виден на выбранном цвете фона. К примеру на белом фоне лучше всего рисовать черный прямоугольник, на черной области - белый.
Есть ли какие-то алгоритмы, которые позволили бы зная один QColor цвета фона, определить оптимальный QColor для прямоугольника выделения?
спасибо)
Записан
alexman
Гость
Re: Рисование линий
«
Ответ #1 :
Май 24, 2010, 11:53 »
Цитата: dr_Begemot от Май 24, 2010, 11:39
Есть ли какие-то алгоритмы, которые позволили бы зная один QColor цвета фона, определить оптимальный QColor для прямоугольника выделения?
Для каждого пикселя можно попробовать брать отрицание текущего цвета пикселя.
Записан
Makss
Гость
Re: Рисование линий
«
Ответ #2 :
Май 24, 2010, 11:58 »
Код:
QColor color = QColor((~col.red()) & 0xFF, (~col.green()) & 0xFF, (~col.blue()) & 0xFF);
col - цвет фона
color - цвет рамки в зависимости от фона
Записан
alexman
Гость
Re: Рисование линий
«
Ответ #3 :
Май 24, 2010, 12:06 »
Цитата: Makss от Май 24, 2010, 11:58
Код:
QColor color = QColor((~col.red()) & 0xFF, (~col.green()) & 0xFF, (~col.blue()) & 0xFF);
col - цвет фона
color - цвет рамки в зависимости от фона
(~col.red()) & 0xFF - зачем?
(~col.red()) & 0xFF == ~col.red()
Записан
dr_Begemot
Гость
Re: Рисование линий
«
Ответ #4 :
Май 24, 2010, 12:30 »
Цитата: alexman от Май 24, 2010, 11:53
Цитата: dr_Begemot от Май 24, 2010, 11:39
Есть ли какие-то алгоритмы, которые позволили бы зная один QColor цвета фона, определить оптимальный QColor для прямоугольника выделения?
Для каждого пикселя можно попробовать брать отрицание текущего цвета пикселя.
Ммм, это надо специальную функцию рисования писать наверное? Или что-то такое уже есть?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Рисование линий
«
Ответ #5 :
Май 24, 2010, 15:43 »
Цвет "рамки для выбора" выбирается, там же где и цвет фона. Остальное не очень надежно/удобно. Напр. инверсия не решает проблемы при сером фоне (который вполне вероятен). Спихните это на пользователя.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...