【问题标题】:KDE widget - problem with icon size and the parent itemKDE 小部件 - 图标大小和父项的问题
【发布时间】: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.IconItemLayouts属性如下:

Layout.minimumWidth: iconSize
Layout.maximumWidth: iconSize
Layout.minimumHeight: iconSize
Layout.maximumHeight: iconSize

此时,图标的大小会根据用户设置进行相应更改。但ListDelegate 项目高度保持固定(因为它仍在使用units.iconSize.medium),因此当用户选择大于中等大小的图标时,图标会重叠。

我能做些什么来解决这个问题?

【问题讨论】:

    标签: widget qml kde


    【解决方案1】:

    After reading the docs,我完全了解Layout的工作原理。

    方法二的解决方法很简单。我还需要为父元素(即RowLayout)的布局属性minimumHeightmaximumHeightpreferredHeight 设置正确的值:

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

    代码应该是不言自明的。这样做时,父 RowLayout 元素能够正确更改其高度以适应图标。

    【讨论】:

      猜你喜欢
      • 2021-03-15
      • 2021-11-28
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多