Я хотел бы изменить виджет KDE Переключатель пользователей , чтобы позволить пользователю выбирать размер значков, отображаемых в представлении fullRepresentation
.Пользователь устанавливает значение в выпадающем списке в настройках, и представление должно автоматически обновляться.
Для этого я добавил код iconSize: getIconSize(combo_currentIndex)
в каждый ListDelegate
экземпляр ,Здесь getIconSize
- это простая функция javascript, которая возвращает указанное значение из units.iconSizes
.
Затем я попробовал два подхода:
Подход 1 : In ListDelegate.qml
Я создал property alias iconSize: icon.Layout.minimumWidth
. Не работает , виджет загружается и выдает эту ошибку: ListDelegate.qml:41:30: Invalid alias target location: Layout
.
Подход 2 : В ListDelegate.qml
Я создал property int iconSize: units.iconSize.medium
(я выбрал средний, потому что это опция по умолчанию в настройках пользователя).Затем я изменил свойства Layouts
PlasmaCore.IconItem
следующим образом:
Layout.minimumWidth: iconSize
Layout.maximumWidth: iconSize
Layout.minimumHeight: iconSize
Layout.maximumHeight: iconSize
На этом этапе размер значков изменяется в соответствии с настройками пользователя.Но высота элемента ListDelegate
остается фиксированной (как и при использовании units.iconSize.medium
), поэтому значки перекрываются, когда пользователь выбирает размер значка больше среднего.
Что можно сделать, чтобы решить эту проблему?