crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
> Определение точных координат на графике в контекстном меню, как реализовать корректно?
AD
  опции профиля:
сообщение 15.7.2009, 15:11
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


[attachment=708:graphics...rdinates.JPG]

Проблема в том, что координаты на осях и координаты в контекстном меню не совпадают. Как получить точные координаты от графика?

Вот так реализовано меню:
{
// ......................................................
private:
        void viewCoordinateCtx(QPointF* coord);
    void createContextMenu(QPointF* coord);
protected:
    virtual void contextMenuEvent(QContextMenuEvent* events);
// ......................................................
};

/// Отображение координат в данной точке
void GraphicDisplay::viewCoordinateCtx(QPointF* coord)
{
    QString strX = (language_flag) ? "Value along axis X:\t" : "Значение вдоль оси X:\t";
    QString strY = (language_flag) ? "Value along axis Y:\t" : "Значение вдоль оси Y:\t";
    strX += QString::number(coord -> x(), 'f', 3);  strY += QString::number(coord -> y(), 'f', 3);

    contextMenu -> addAction(strX);
    contextMenu -> addAction(strY);

    /// .....
}

/// Создание контекстного меню
void GraphicDisplay::createContextMenu(QPointF* coord)
{
    if(!contextMenu -> actions().isEmpty()) contextMenu -> clear();
    viewCoordinateCtx(coord);
}

/// Отображение контекстного меню
void GraphicDisplay::contextMenuEvent(QContextMenuEvent* events)
{
    QPointF coordinate = initXY(&events -> pos());
    createContextMenu(&coordinate);

    contextMenu -> exec(events -> globalPos());
}


Есть мысли, где возможна ошибка?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.7.2009, 15:35
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


А помоему, вполне совпадают ±погрешность установки указателя мыша
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.7.2009, 15:38
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Litkevich Yuriy @ 15.7.2009, 16:35) *
А помоему, вполне совпадают ±погрешность установки указателя мыша

Есть ли возможность сделать более точно? Уверен, что при частом использовании пользователям не понравится эта погрешность. Пока просто не замечали....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.7.2009, 16:16
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(AD @ 15.7.2009, 19:38) *
Есть ли возможность сделать более точно?
вообще кликать мышкой в график это засада.

Удобнее когда есть курсор - перекрестие которо ты двигаешь, точка пересечения курсора при этом бегает по самому графику, вот её координаты и выводи.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.7.2009, 16:31
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата
вообще кликать мышкой в график это засада.

Удобнее когда есть курсор - перекрестие которо ты двигаешь, точка пересечения курсора при этом бегает по самому графику, вот её координаты и выводи.

А это как? Можешь описать. Сделаю, если пойму и будет пригодно в этой задаче...

Сообщение отредактировал AD - 15.7.2009, 16:33
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mozgofil
  опции профиля:
сообщение 15.7.2009, 17:07
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 23.4.2009
Пользователь №: 706

Спасибо сказали: 0 раз(а)




Репутация:   0  


- извращение(imho)
стандартный подход: при перемещении мыши (MouseMove) выводить координаты графика
в статус-баре или в углу Вида.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.7.2009, 17:15
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата
- извращение(imho)
стандартный подход: при перемещении мыши (MouseMove) выводить координаты графика
в статус-баре или в углу Вида.

Все претензии к пользователям. Такие требования и пожелания! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mozgofil
  опции профиля:
сообщение 15.7.2009, 17:28
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 23.4.2009
Пользователь №: 706

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(AD @ 15.7.2009, 18:15) *
Цитата
- извращение(imho)
стандартный подход: при перемещении мыши (MouseMove) выводить координаты графика
в статус-баре или в углу Вида.

Все претензии к пользователям. Такие требования и пожелания! :)

ну вот :blink:

тогда такой совет :
1)преобразовать координаты курсора в координаты графика
2)"опустить" из этой точки перпендикулярна график, либо
просто "провести" ортогональную прямую до пересечения с графиком
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.7.2009, 17:30
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(mozgofil @ 15.7.2009, 21:07) *
при перемещении мыши (MouseMove) выводить координаты графика
в статус-баре или в углу Вида.
а если мышь там где нет крвой, за её пределами? Прикажешь пользователю целитсься?

Цитата(AD @ 15.7.2009, 20:31) *
А это как? Можешь описать.
попробую снимок сделать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mozgofil
  опции профиля:
сообщение 15.7.2009, 17:40
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 23.4.2009
Пользователь №: 706

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 15.7.2009, 18:30) *
Цитата(mozgofil @ 15.7.2009, 21:07) *
при перемещении мыши (MouseMove) выводить координаты графика
в статус-баре или в углу Вида.
а если мышь там где нет крвой, за её пределами? Прикажешь пользователю целитсься?

А что такого ?
если хотят значение на графике пусть включают "[horizontal|vertical] viewfinder" в контекстном меню.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V   1 2 3 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 15:01