我有以下小部件结构。CDockWidgetInfoBar
只是一个QDockWidget
派生类
当我移过QDockWidget
( CDockWidgetInfoBar
) 时,我看到了这个分割光标。
它来自哪里?我可以禁用它吗?它是一部分QDockWidgetLayout
吗?但是,QDockWidgetLayout
它是Qt 私有的,不应使用。
有任何想法吗?
对于系统来说,这似乎是不可能的或极其痛苦的。
我尝试这样做,因为我在这里这样做:当光标位于 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();
}
但在用户尝试浮动码头后它确实有效。
我知道这不是完整的答案,但也许它有帮助或证明它非常困难。无论如何,如果有人能找到这个问题的有效解决方案,那将是非常棒的。