KDE小部件-图标大小和父项存在问题

时间:2019-01-31 18:01:00

标签: widget qml kde

我想修改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),因此,当用户选择大于中号的图标时,图标会重叠。

我该怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

After reading the docs,我已经完全了解 布局 的工作原理。

方法2 的解决方案非常简单。我还需要正确的值设置为布局属性minimumHeightmaximumHeightpreferredHeight的父元素(其为RowLayout 行的< / em> ):

Layout.minimumHeight: units.iconSizes.tiny
Layout.maximumHeight: units.iconSizes.enormous
Layout.preferredHeight: iconSize

代码应具有自我解释性。这样,父RowLayout元素便能够正确更改其高度以适应图标。