У меня есть код, где я рисую символ и прикрепляю его к графику. Теперь я хочу выяснить, существует ли автоматически ограничивающий прямоугольник с символом, чтобы я мог написать некоторый код для выбора символа, чтобы пользователи могли его редактировать — выберите его, чтобы удалить, например.
Я видел метод 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();
Символ определяется в другом месте. Заранее спасибо.
boundingRect Функция возвращает прямоугольник, достаточно большой, чтобы в него помещались все точки ряда. Это необходимо для автоматического масштабирования и определенно не то, что вы ищете. То, что вы хотите, это что-то вроде индикатора фокуса или выбора. Вы можете взглянуть на event_filter
пример поставляется с qwt. Там можно выбирать и перемещать точки / маркеры.
Пример директории qwt можно найти в базовой директории qwt (по крайней мере, в Windows), например qwt-6.0\examples
, Двоичные файлы расположены в qwt-6.0\examples\bin
, Посмотрите на INSTALL
файл, чтобы увидеть, как построить двоичные файлы.
Других решений пока нет …