Добавление списка слоёв в приложение PyQGIS

Обсуждение материалов сайта: вопросы, замечания, предложения
Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение Voltron » 08 фев 2012, 15:45

Если вы выбрали третий вариант (добавить поддержку новой символики, тот самый rendererV2), то вам нужно доработать виджет легенды (файл legend.py), добавив поддержку новой символики.

Простая замена не поможет, нужна именно доработка.

real673
Интересующийся
Сообщения: 33
Зарегистрирован: 06 фев 2012, 21:54
Репутация: 0

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение real673 » 09 фев 2012, 10:30

доработать виджет легенды у меня вряд ли полдучится .
а вот как на счет первого варианта.
как к слоям подкладывать файл стиля (qml) для старой символики.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение Voltron » 09 фев 2012, 11:05

real673 писал(а):а вот как на счет первого варианта. как к слоям подкладывать файл стиля (qml) для старой символики.
Да все просто. Сначала открываете слой в QGIS, переключаетесь на старую символику и настраиваете внешний вид слоя. Затем жмете «Save style...» («Сохранить стиль») и сохраняете файл qml рядом с шейпом, причем имя файла стиля должно совпадать с именем шейпа. Все. Теперь при открытии такого шейпа в приложении он загрузится с использованием старой символики.

Недостатки уже называл: это необходимость предварительно создавать стиль и неработоспособность приложения после удаления старой символики из QGIS.

real673
Интересующийся
Сообщения: 33
Зарегистрирован: 06 фев 2012, 21:54
Репутация: 0

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение real673 » 09 фев 2012, 11:17

не могу разабраться как переключить символику
и где найти стили

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение Voltron » 09 фев 2012, 11:35

Загружаете слой в QGIS. Вызываете контекстное меню по правой клавише мыши и выбираете пункт «Свойства». В диалогое открываете вкладку «Стиль». А дальше смотрите скриншот
symbology.png
symbology.png (44.45 КБ) 13492 просмотра
Нажатием на «Старая символика» вы переключитесь на использование старой символики для этого слоя. Или же можно переключиться на старую символику глобально (это задается через «Установки-Параметры-Отрисовка-Совместимость»)

Кнопка «Сохранить стиль» расположена внизу окна

real673
Интересующийся
Сообщения: 33
Зарегистрирован: 06 фев 2012, 21:54
Репутация: 0

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение real673 » 09 фев 2012, 11:38

Спасибо большое разобрался и пример тоже заработал.
а можно ли как нибудь сделать подписи объектов

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение Voltron » 09 фев 2012, 11:41

real673 писал(а):а можно ли как нибудь сделать подписи объектов
Разумеется. Смотрите в сторону классов QgsLabel и QgsLabelingEngineInterface (описание API)

real673
Интересующийся
Сообщения: 33
Зарегистрирован: 06 фев 2012, 21:54
Репутация: 0

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение real673 » 09 фев 2012, 11:47

а в примере используется кодировка utf-8
а русские символы считываться ни как не будут???

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение Voltron » 09 фев 2012, 11:56

Ммм... не совсем понял. Русские буквы в кодировке UTF-8 отображаются прекрасно. Ну и никто не запрещает использовать любую другую кодировку

real673
Интересующийся
Сообщения: 33
Зарегистрирован: 06 фев 2012, 21:54
Репутация: 0

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение real673 » 09 фев 2012, 12:02

проблем в том что когда я например заменяю "ZOOM IN" на "Увеличить" то при запуске программы он выдает иероглефы.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение Voltron » 09 фев 2012, 12:18

Вы про интерфейс... А меняете в Qt Designer или правите файл вручную?

real673
Интересующийся
Сообщения: 33
Зарегистрирован: 06 фев 2012, 21:54
Репутация: 0

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение real673 » 09 фев 2012, 19:05

менял в файле Legend.py вручную

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение Voltron » 09 фев 2012, 20:09

Если использовали редактор, не поддерживающий UTF-8 то конечно все будет в закорючках.Либо пишите в utf-8, либо укажите свою кодировку в самой первой строке и не забудьте пересохранить файл в этой кодировке.

real673
Интересующийся
Сообщения: 33
Зарегистрирован: 06 фев 2012, 21:54
Репутация: 0

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение real673 » 10 фев 2012, 09:03

Скажите пожалуйста окно в котором показываются слои это же Canvas
тогда как мне отобразить координаты при движении мышью, как это сделано в Qgis?

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Добавление списка слоёв в приложение PyQGIS

Сообщение Voltron » 10 фев 2012, 14:50

real673 писал(а):Скажите пожалуйста окно в котором показываются слои это же Canvas
тогда как мне отобразить координаты при движении мышью, как это сделано в Qgis?
Да, область где отображаются слои это Canvas. Если быть совсем точными, то MapCanvas (есть еще OverviewCanvas).

Для отображения координат надо добавлять свой виджет, подключать его к соответствующим сигналам и писать обработчики-слоты. Но этот вопрос выходит за рамки обсуждения статьи, так что лучше создайте отдельную тему в форуме QGIS

Ответить

Вернуться в «Материалы сайта»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей