我想修改KDE插件User Switcher来让用户决定在fullRepresentation
视图中显示的图标的大小。用户在设定的组合框设置的值,并且视图应该自动更新。
要实现这一点,我已经添加了代码iconSize: getIconSize(combo_currentIndex)
在每个ListDelegate
instance。这里,getIconSize
是一个简单的javascript函数,它从units.iconSizes
返回指定的值。
然后,我试图两种方法:
方法1 :在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
),因此,当用户选择大于中号的图标时,图标会重叠。
我该怎么解决这个问题?
答案 0 :(得分:0)
After reading the docs,我已经完全了解 布局 的工作原理。
方法2 的解决方案非常简单。我还需要正确的值设置为布局属性minimumHeight
,maximumHeight
和preferredHeight
的父元素(其为RowLayout
的 行的< / em> ):
Layout.minimumHeight: units.iconSizes.tiny
Layout.maximumHeight: units.iconSizes.enormous
Layout.preferredHeight: iconSize
代码应具有自我解释性。这样,父RowLayout
元素便能够正确更改其高度以适应图标。