Russian Qt Forum
Июня 09, 2025, 10:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Скругленные углы у прямоугольника  (Прочитано 3549 раз)
Ground
Гость
« : Июня 14, 2012, 15:29 »

Доброго времени суток!
Мне нужно сделать одинаковый коэффициент скругления углов у прямоугольников любой ширины и высоты, никак не могу понять как задать этот коэффициент без связи с шириной и высотой фигуры. Пробовал даже рисовать с использованием параметра Qt::RelativeSize, но все равно не работает. Что я делаю не так?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Июня 14, 2012, 16:16 »

когда я рисовал через QPainterPath, то константа для скругления работала
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Ground
Гость
« Ответ #2 : Июня 14, 2012, 16:30 »

Ну вот я рисую два прямоугольника с параметрами xRadius = 5, yRadius = 25. Поверх них рисую заливку (оранжевый передний фон) с аналогичными параметрами. В итоге выходит такая вот ерунда, как на изображении.
Подумал было на то, что изображение обрезается. Проверил рамки. boundingRect - QRectF(0,0 626x322), roundedRect - QRect(0,0 626x322). Т.е. вроде бы все корректно прорисовывается и умещается в границы.
Записан
Ground
Гость
« Ответ #3 : Июня 14, 2012, 16:39 »

Решение найдено.
Берем значение длины width и высоты height. Выбираем константное значение coeff. Тогда:
xRadius = coeff;
yRadius = coeff * width / height;

Для черных прямоугольников значение coeff = 5, если вдруг кому понадобится.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 2.175 секунд. Запросов: 22.