阻止外部滚动条

$('.xxx')[0].onmousewheel = function(event){
//$.stopScroll(event, $(this))
//var k = event.wheelDelta? event.wheelDelta:-event.detail*10;
//$(this)[0].scrollTop = $(this)[0].scrollTop - k;
//return false;
};

转载于:https://www.cnblogs.com/heqhbk/p/4767871.html

### 停止 QTreeWidget 滚动条自动滚动行为的方法 在使用 `QTreeWidget` 时,当展开或折叠项时,视图可能会自动调整内容区域大小,导致水平滚动条自动出现或调整位置。如果希望停止这种自动滚动行为,可以通过设置列的大小调整策略为手动控制,避免自动调整宽度。 可以通过以下方式实现: - **设置列的大小调整模式为手动** 使用 `header()->setSectionResizeMode()` 方法将列的大小调整模式设置为 `QHeaderView::Fixed` 或 `QHeaderView::Interactive`,这样可以防止 `QTreeWidget` 自动调整列宽,从而避免水平滚动条因内容变化而自动滚动。 示例代码如下: ```cpp ui.treeWidget->header()->setSectionResizeMode(QHeaderView::Fixed); ``` - **禁用自动调整列宽的信号响应** 如果原本通过连接 `expanded` 或 `collapsed` 信号来调用 `resizeColumnToContents()` 方法,可以取消这些连接,以防止每次展开或折叠时自动调整列宽[^1]。 例如,若原本有如下代码: ```cpp connect(ui->treeWidget, SIGNAL(itemExpanded(QTreeWidgetItem*)), this, SLOT(updateColumnWidth(QTreeWidgetItem*))); ``` 可以将其移除或注释掉,以阻止自动调整宽度的行为。 - **控制滚动条策略** 如果 `QTreeWidget` 被嵌入到 `QScrollArea` 中,可以设置 `QTreeWidget` 的滚动条策略为 `Qt::ScrollBarAlwaysOff`,由外部的 `QScrollArea` 统一控制滚动行为,避免多个滚动条同时存在导致的混乱[^2]。 ```cpp ui.treeWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); ui.treeWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); ``` 这样可以避免用户面对多个滚动条时产生困惑。 ### 注意事项 - **保持列宽一致性** 如果手动设置了列宽,应确保所有列的宽度总和不超过视图区域宽度,否则即使禁用了自动调整,仍可能出现滚动条。 - **动态内容处理** 如果内容是动态加载的,建议在加载完成后手动调用 `setSectionResizeMode()` 来保持视图的稳定性和一致性。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值