加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 禁用QDockWidget的拆分器光标

发布时间:2020-12-16 07:10:01 所属栏目:百科 来源:网络整理
导读:我有以下小部件结构. CDockWidgetInfoBar只是一个QDockWidget派生类 当我移过QDockWidget(CDockWidgetInfoBar)时,我看到这个分割器光标. 它来自哪里?我可以禁用吗?它是QDockWidgetLayout的一部分吗?但是,QDockWidgetLayout是Qt private,不得使用. 有任何
我有以下小部件结构. CDockWidgetInfoBar只是一个QDockWidget派生类

当我移过QDockWidget(CDockWidgetInfoBar)时,我看到这个分割器光标.

它来自哪里?我可以禁用吗?它是QDockWidgetLayout的一部分吗?但是,QDockWidgetLayout是Qt private,不得使用.

有任何想法吗?

解决方法

系统似乎不可能或非常痛苦.

我尝试这样做,因为我在这里这样做:How can I prevent transform cursor to SplitHCursor when it’s under border between QHeaderView sections

但是主要问题是,在QEvent :: Enter事件发生之前出现调整大小的光标. (如果你运行下一个代码,你会先看到调整光标,但你不会看到“添加”字样).据我所知,当它移动到小部件边缘附近时,没有任何可以捕获光标的事件.所以抓住这个事件非常困难.还有另一种方式.在mouseMoveEvent中,每次检查是否在dock小部件附近.但我认为这是非常低效的.

我写了这段代码:

if (obj == ui->dockWidget && event->type() == QEvent::Enter)
{
    qApp->setOverrideCursor(QCursor(Qt::ArrowCursor));
    qDebug() << "added";
}
if (obj == ui->dockWidget && event->type() == QEvent::Leave)
{
    qApp->restoreOverrideCursor();
}

但它确实适用于用户试图浮动停靠.

我知道这不是完整的答案,但也许它有助于或证明这是非常困难的.无论如何,如果有人能找到这个问题的有效解决方案,那将是非常好的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读