Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: PavelS от Март 21, 2017, 11:39



Название: Ввод координат
Отправлено: PavelS от Март 21, 2017, 11:39
Задача - ввести координаты на местности с пользовательского интерфейса. Идеальный вариант - делегат для QSqlTableView + model. Т.к. всё редактируется через тэйбл-модель. Фактически координаты хранятся в базе как пара чисел (широта, долгота), хотя это можно поправить. Ввод хорошо бы вводить как градусы минуты секунды, и желательно чтобы разделители этих полей были бы сразу и всегда, т.е. чтобы формат не сбивался.

Вопрос - как это лучше делать?


Название: Re: Ввод координат
Отправлено: GreatSnake от Март 21, 2017, 12:05
В перегруженном
Код
C++ (Qt)
QWidget *QStyledItemDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
создай QLineEdit c нужной inputMask.


Название: Re: Ввод координат
Отправлено: PavelS от Март 21, 2017, 12:14
Спасибо за ответ, но может у кого есть ещё детали, к примеру, как именно распарсить строку с координатами в число наиболее простым способом, а то может и готовые классы или фрагменты кода?

Или к примеру код на тему QLineEdit с маской ввода координат.


Название: Re: Ввод координат
Отправлено: qate от Март 21, 2017, 14:53
обычный lineedit без масок ибо копипаста будет неудобно
распарсить два double разве проблема ?
яндекс мапс успешно принимает 2 дабла и показывает где оно


Название: Re: Ввод координат
Отправлено: PavelS от Март 22, 2017, 12:05
Да я хотел градусы-минуты-секунды. Ладно, в целом сделал.


Название: Re: Ввод координат
Отправлено: lit-uriy от Март 23, 2017, 06:16
Похожая тема и примеры есть: http://www.prog.org.ru/topic_9672_0.html