На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Компоненты Qt Designer

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1 2 3 След.
RSS
Компоненты Qt Designer
 
Здравствуйте уважаемые сотрудники КБ  Панорама.

Недавно мы приобрели ваш продукт "ГИС Конструктор FREE для Qt Designer x64 (версия 12.3.2, Qt4, Qt5, ОС Astra Linux SE, релиз Смоленск) " и в процессе разработки нашего проекта столкнулись с некоторыми особенностями работы компонентов.
Работаем под Astra Linux SE 1.6, Qt 5.11.

Компонент QDMapSelectDialog.
1) В ui данного компонента скорее всего не настроены Qt Layout, в следствии чего диалоговое окно не реагирует на растягивание. Так же некоторые объекты диалогового окна накладываются друг на друга.
2) Не обновляются список объектов во вкладке "Объекты" при изменении типа объектов во вкладке "Слои". Например после выделения линейных объектов и последующего изменения типа на векторные, список объектов во вкладке "Объекты" не обновляется и продолжает отображать линейные объекты. При перезапуске диалогового окна с тем же QDMapFind, список во вкладке "Объекты" обновляется.
В GisToolKit 12 таких особенностей замечено не было.

Компонент QDMapDataList.
При добавлении новой карты в диалоговом окне присутствуют только 2 фильтра для sit и sitx.
В GisToolKit 12 так же можно добавлять только sit. Хотя функционал GIS Panorama разрешает больше форматов при использовании подобного диалога.

В тестовом наброске проекта для проверки работоспособности функционала используем части кода (для вызова диалоговых окон) из примера myfirst.

После обнаружения этих особенностей, мы обновили версию Qt Designer до последней на текущий момент 12.5.0 с вашего сайта, но ситуация с компонентами осталась прежней.

Есть ли возможность исправления указанных компонентов?
Заранее спасибо.
QDMapDataList1.png (79.3 КБ)
 
Хотелось бы услышать ответ, уважаемые сотрудники КБ!
 
Исправления войдут в следующую версию ГИС Контруктора для Qt Designer.

О доступности обновления на сайте сообщим в данной ветке.
 
В ожидании следующей версии ГИС конструктора возник следующий вопрос:

Требуется установить видимость слоёв на всех ситах карты.

Использую следующий код (Основанный на темах с вашего форума):
Код
void TMapAreaFiller::setLayerFilter(QBitArray inLayerFilter) /// Метод установит фильтры слоёв
{
    if (fLayerFilter == inLayerFilter) // Если новый фильтр не отличается от текущего
        return;


    fLayerFilter = inLayerFilter; // Запоминаем новое состояние фильтра
    std::uint32_t SiteCount = MapView->VarMapSites->GetSiteCount(); // Получаем количество ситов


    QDMapSelect* Select = new QDMapSelect(MapView->GetMapViewAcces()); // Инициализируем селектор


    for (std::uint32_t SiteIndex = 1; SiteIndex <= SiteCount; ++SiteIndex) // Перебираем ситы 
    {
        Select->SetSiteNumber(SiteIndex); // Для сита № SiteIndex


        for (std::int32_t LayerIndex = 0; LayerIndex < fLayerFilter.size(); ++LayerIndex) // Перебираем слои 
        { //fLayerFilter.size() == 256 Всегда
            bool Value = fLayerFilter.testBit(LayerIndex); // Получаем флаг отображения слоя на основе бита № LayerIndex
            Select->SetLayers(LayerIndex, Value); // Устанавливаем видимость слоя № LayerIndex
        }
    }


    MapView->SetViewSelect(Select); // Задаём выборку отображения карте
    MapView->SetSelecting(true);


    MapView->Repaint(); // Перерисовываем карту
Метод корректно обрабатывается только один раз.
т.е. Я скрываю слой №1, Отрабатывается корректно карта перерисовывается, слой скрывается.
Сразу после этого я разрешаю отображение слоя №1 и ничего не происходит. Карта не обновляется (Принудительный Repaint не спасает).
Но если после этого я изменю масштаб отображения, то срабатывает перерисовка и отображение слоёв становится корректным. Как так?)

Подскажите пожалуйста, что я делаю не правильно, заранее спасибо.
 

Уважаемые сотрудники КБ  Панорама. Прошло почти две недели с момента, когда я задал вам последний вопрос. Т.К. ответа на него нет, позволю себе напомнить, что вопрос был не риторический и мы всё ещё ждём на него ответ. Так же мы по прежнему ожидаем новой версии "ГИС Конструктор FREE для Qt Designer x64" о которой вы упоминали уже почти месяц назад.

Между тем у нас горят сроку по проекту, и хотелось бы получить хоть какую-нибудь внятную информацию о сроках выхода новой версии "ГИС Конструктор FREE для Qt Designer x64" с исправленными багами интерфейса и доработанным функционалом.

Так же хотелось обратить ваше внимание на особенности работы компонента QDMapActionLine, который «фиксирует точку» при нажатии на абсолютно любую клавишу мыши.

И наконец мы столкнулись ещё с одной проблемой, в этот раз при работе с компонентом QDMapObj. Стоит задача выделить некоторый набор объектов карты цветом.

Все объекты, которые необходимо выделить валидны и являются частью(MapObject) объекта другого класса(Nom_Ptr), находящегося в контейнере типа std::set(fSelectedNoms).

Последовательно выделяем находящиеся в контейнере объекты:

Код
...
 
     std::for_each(fSelectedNoms.cbegin(), fSelectedNoms.cend(), [&](const DataStruct::Nom_Ptr &Nom) // Перебираем полученные объекты
     {
         Nom->MapObject.SetStyle(QDMapObj::OS_SELECT); // Выделяем
     });
 
     ui->MapWidget->MapViewEx()->Repaint(); // Перерисовываем карту
 
 ...

В результате получаем сообщение об ошибке от системы (после успешного выделения ~233 объектов).

Что могло пойти не так?

С уважением команда разработчиков «ЗАО «ИНСТИТУТ ТЕЛЕКОММУНИКАЦИЙ»

Screen1.png (42.1 КБ)
 
Цитата
Сергей Алексеев написал:
Уважаемые сотрудники КБ  Панорама. Прошло почти две недели с момента, когда я задал вам последний вопрос. Т.К. ответа на него нет, позволю себе напомнить, что вопрос был не риторический и мы всё ещё ждём на него ответ. Так же мы по прежнему ожидаем новой версии "ГИС Конструктор FREE для Qt Designer x64" о которой вы упоминали уже почти месяц назад.

Уважаемые господа!

Нам есть смысл ждать вашего ответа или вы нас просто игнорируете?
 
Здравствуйте!

Прошу прощения за задержку с ответом - на данный момент разбираемся с вопросами по диалогу поиска.
В ближайшие дни планируем выслать Вам тестовую версию с данным исправлением.
Пришлите, пожалуйста, письмо на нашу почту (panorama@gisinfo.ru), чтобы мы выслали Вам ссылку на скачивание тестовой версии.
Спасибо!
 
Цитата
Сергей Алексеев написал:
Стоит задача выделить некоторый набор объектов карты цветом.

Здравствуйте!

Попробуйте сделать так:

Код
QDMapSelect * qselect = new QDMapSelect(ui.DMapView1);
   for(int i=0; i< vectsize && i< 3000 ; i++)
   {
       QDMapObj * currentObject =  vectorObjects.at(i);
       qselect->SelectSample(true,listname,currentObject->GetKey());
   }

   ui.DMapView1->SetObjSelected(qselect, #ff0000, true);

На скриншоте показано выделение 3000 объектов:
 
Здравствуйте Эдуард Портнягин.

Немного переработав Ваш пример под наши данные получил:
Код
    QDMapSelect* ObjectSelector = new QDMapSelect(ui.DMapView1);

    std::for_each(fSelectedNoms.cbegin(), fSelectedNoms.cend(), [&](const MapAreaFiller::TIntersectPair &InterPair) // Перебираем полученные номенклатуры
    {
        ObjectSelector->SelectSample(true, InterPair.first->MapObject.GetListName(), InterPair.first->MapObject.GetKey()); // Выделяем первый объект
        ObjectSelector->SelectSample(true, InterPair.second->MapObject.GetListName(), InterPair.second->MapObject.GetKey()); // Выделяем второй объект
    });

    ui.DMapView1->SetObjSelected(ObjectSelector, qRgb(255,0,0), true);

Никакой реакции. Ни ошибок, ни выделения.
Изменено: Сергей Алексеев - 20.02.2019 10:42:35
 
Здравствуйте!

Протестировал на районе из 4 номенклатурных листов, все работает - на каждом листе выделено по 1000 объектов.






Возможна ошибка в ваших исходных данных. Проверьте корректность названий номенклатурных листов, входящих в район. Если есть повторяющиеся названия - работать не будет.
Страницы: 1 2 3 След.
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности