Задать ширину панели слоев в QGIS?

11

Когда я открываю QGIS, панель слоев по умолчанию имеет ширину, на которой нет кнопки «Удалить слой / группу». Поэтому мне нужно изменить размер панели, чтобы она отображалась при каждом открытии QGIS.

Можно ли установить ширину по умолчанию для этой панели, чтобы мне не пришлось ее изменять?

Я использую QGIS 2.18.5 на Windows 10.

Balex
источник
Я добавляю другую панель (в моем случае Advanced Digitizing Tool или Value Tool). Некоторые из этих панелей стараются сохранить свою ширину. Но я согласен, было бы неплохо, если бы можно было установить ширину по умолчанию.
Казухито
Было бы хорошо, чтобы проект запомнил, но вам не нужна эта кнопка, так как функция доступна через всплывающее меню щелчка правой кнопкой мыши, поэтому нет необходимости изменять размер (т.е. это точно такое же количество нажатий кнопок - один на слое и один для удаления). Если вы все еще хотите использовать кнопку, вам все равно не нужно изменять ее размер, поскольку вы можете нажать кнопку >> на краю панели, и все скрытые кнопки появятся во всплывающем окне (это относится ко всем меню QGIS).
MappaGnosis

Ответы:

11

Используя немного Python , мы могли бы создать скрипт startup.py, который устанавливает ширину панели слоев, используя следующее:

from qgis.utils import iface
from PyQt4.QtGui import QDockWidget

for x in iface.mainWindow().findChildren(QDockWidget): 
    if x.objectName() == 'Layers':
        x.setFixedWidth(250)
        x.setMinimumWidth(100)
        x.setMaximumWidth(1000)

Сохраните скрипт в /.qgis2/python/каталоге. Теперь, когда вы загружаете QGIS, ширина панели слоев будет установлена ​​соответственно.

Джозеф
источник
1
Спасибо, Джозеф, это хорошее решение. Однако я обнаружил, что установка минимального минимального значения ширины после фиксированной ширины делает избыточной фиксированную ширину. Так что для моих целей я использовал только x.setMinimumWidth (250), 250 было магическим числом для меня, это все же позволило мне расширить панель при необходимости.
BALEX
@balex - Добро пожаловать, рад, что это помогло! Забавно, когда я удаляю setFixedWidth, это не изменяет размер соответственно. Возможно, потому что я использую 2.18.2, но по крайней мере это работает для вас :)
Джозеф