4

我有以下小部件结构。CDockWidgetInfoBar只是一个QDockWidget派生类

小部件结构

当我移过QDockWidget( CDockWidgetInfoBar) 时,我看到了这个分割光标。 调整光标大小

它来自哪里?我可以禁用它吗?它是一部分QDockWidgetLayout吗?但是,QDockWidgetLayout它是Qt 私有的,不应使用。

有任何想法吗?

4

1 回答 1

1

对于系统来说,这似乎是不可能的或极其痛苦的。

我尝试这样做,因为我在这里这样做:当光标位于 QHeaderView 部分之间的边界下时,如何防止将光标转换为 SplitHCursor

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

我写了这段代码:

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();
}

但在用户尝试浮动码头后它确实有效。

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

于 2014-10-13T14:03:14.083 回答