【发布时间】:2019-06-25 06:32:59
【问题描述】:
我想修改 KDE 小部件 User Switcher 以让用户决定要在 fullRepresentation 视图中显示的图标的大小。用户在设置的组合框中设置了一个值,视图应该会自动更新。
为此,我在每个ListDelegate instance 中添加了代码iconSize: getIconSize(combo_currentIndex)。这里,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(我选择了中等,因为这是用户设置中的默认选项)。然后我改变了PlasmaCore.IconItem的Layouts属性如下:
Layout.minimumWidth: iconSize
Layout.maximumWidth: iconSize
Layout.minimumHeight: iconSize
Layout.maximumHeight: iconSize
此时,图标的大小会根据用户设置进行相应更改。但ListDelegate 项目高度保持固定(因为它仍在使用units.iconSize.medium),因此当用户选择大于中等大小的图标时,图标会重叠。
我能做些什么来解决这个问题?
【问题讨论】: