Страница 2 из 3

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

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

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

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

Добавлено: 09 фев 2012, 10:30
real673
доработать виджет легенды у меня вряд ли полдучится .
а вот как на счет первого варианта.
как к слоям подкладывать файл стиля (qml) для старой символики.

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

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

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

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

Добавлено: 09 фев 2012, 11:17
real673
не могу разабраться как переключить символику
и где найти стили

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

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

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

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

Добавлено: 09 фев 2012, 11:38
real673
Спасибо большое разобрался и пример тоже заработал.
а можно ли как нибудь сделать подписи объектов

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

Добавлено: 09 фев 2012, 11:41
Voltron
real673 писал(а):а можно ли как нибудь сделать подписи объектов
Разумеется. Смотрите в сторону классов QgsLabel и QgsLabelingEngineInterface (описание API)

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

Добавлено: 09 фев 2012, 11:47
real673
а в примере используется кодировка utf-8
а русские символы считываться ни как не будут???

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

Добавлено: 09 фев 2012, 11:56
Voltron
Ммм... не совсем понял. Русские буквы в кодировке UTF-8 отображаются прекрасно. Ну и никто не запрещает использовать любую другую кодировку

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

Добавлено: 09 фев 2012, 12:02
real673
проблем в том что когда я например заменяю "ZOOM IN" на "Увеличить" то при запуске программы он выдает иероглефы.

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

Добавлено: 09 фев 2012, 12:18
Voltron
Вы про интерфейс... А меняете в Qt Designer или правите файл вручную?

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

Добавлено: 09 фев 2012, 19:05
real673
менял в файле Legend.py вручную

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

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

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

Добавлено: 10 фев 2012, 09:03
real673
Скажите пожалуйста окно в котором показываются слои это же Canvas
тогда как мне отобразить координаты при движении мышью, как это сделано в Qgis?

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

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

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