qt - 为鼠标悬停使 SplitView 手柄更宽
问题描述
从 qml 自定义 SplitView 示例中,我们可以看到句柄是 Rectangle,implicitWidth 4
SplitView
{
id: splitView
anchors.fill: parent
handle: Rectangle {
implicitWidth: 4
implicitHeight: 4
color: SplitHandle.pressed ? "#81e889"
: (SplitHandle.hovered ? Qt.lighter("#c2f4c6", 1.1) : "#c2f4c6")
}
Rectangle {
implicitWidth: 150
color: "#444"
}
Rectangle {
implicitWidth: 50
color: "#666"
}
}
在我的宠物项目中,我将其设置为 2,但现在很难调整 SplitView 的大小,因为鼠标悬停区域太紧。我不想让它本身变大,但只想增加鼠标悬停区域。我尝试了一些,但没有成功。可能吗?
解决方案
由于一系列社区贡献,这是一个不幸的限制,将在 6.2 中修复。然后,解决方案将是使用containsMask:
SplitView 使用根句柄项来确定可触摸区域,但是如果您尝试使用普通的 Item 来增加该区域,则会影响句柄的视觉大小,这通常是不可取的:
import QtQuick 2.15
import QtQuick.Controls 2.15
ApplicationWindow {
width: 640
height: 480
visible: true
SplitView {
anchors.fill: parent
handle: Item {
implicitWidth: 32
Rectangle {
implicitWidth: 4
anchors.horizontalCenter: parent.horizontalCenter
height: parent.height
color: SplitHandle.pressed ? "#81e889"
: (SplitHandle.hovered ? Qt.lighter("#c2f4c6", 1.1) : "#c2f4c6")
}
}
Rectangle {
implicitWidth: 150
color: "#444"
}
Rectangle {
implicitWidth: 50
color: "#666"
}
}
}
注意不应该存在的大的白色区域:
推荐阅读
- javascript - ToggleButton - 如何取消切换?
- android - 仅在arrayadapter中按大于和小于android的值显示列表的子集
- python - AttributeError:模块“osmnx”没有属性“project_gdf”
- foreign-keys - 烧瓶应用程序 - 与列关联的外键找不到用于生成目标列的外键的表
- hadoop - 通过 sqoop 在 hana 上导入 sap bw
- kubernetes - 一个容器进程在多个容器 POD 中崩溃会发生什么?
- vue.js - 将特定模块加载为单独的块
- node.js - Lambda 节点 JS Shopify API 调用
- google-apps-script - GAS:“您每天运行服务高级版 gmail 的次数过多” issu
- vb.net - VB.NET:将datagridview中的文本列转换为图像列并根据文本设置图标