Как работает boundingRect ()

У меня есть код, где я рисую символ и прикрепляю его к графику. Теперь я хочу выяснить, существует ли автоматически ограничивающий прямоугольник с символом, чтобы я мог написать некоторый код для выбора символа, чтобы пользователи могли его редактировать — выберите его, чтобы удалить, например.

Я видел метод boundingRect () в qwt_plot_marker.h, как бы я использовал это, чтобы определить, существует ли прямоугольник, созданный при реализации следующего кода?

void DataPointMarker::draw(QPainter *p,
const QwtScaleMap &xMap, const QwtScaleMap &yMap,
const QRect &) const
{
const int posX = xMap.transform(m_positionX);
const int posY = yMap.transform(m_positionY);

p->save();

symbol().draw(p, posX, posY);

p->restore();

Символ определяется в другом месте. Заранее спасибо.

2

Решение

boundingRect Функция возвращает прямоугольник, достаточно большой, чтобы в него помещались все точки ряда. Это необходимо для автоматического масштабирования и определенно не то, что вы ищете. То, что вы хотите, это что-то вроде индикатора фокуса или выбора. Вы можете взглянуть на event_filter пример поставляется с qwt. Там можно выбирать и перемещать точки / маркеры.

Пример директории qwt можно найти в базовой директории qwt (по крайней мере, в Windows), например qwt-6.0\examples, Двоичные файлы расположены в qwt-6.0\examples\bin, Посмотрите на INSTALL файл, чтобы увидеть, как построить двоичные файлы.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]