次のウィジェット構造があります。CDockWidgetInfoBar
単なるQDockWidget
派生クラスです
QDockWidget
( )の上に移動すると、CDockWidgetInfoBar
この分割カーソルが表示されます。
それはどこから来ているのですか?無効にできますか? の一部QDockWidgetLayout
ですか?ただし、 QtQDockWidgetLayout
はプライベートであり、使用されません。
何か案は?
システム的には無理か極度に苦痛のようです。
ここでこれを行ったので、これを実行しようとしました: QHeaderViewセクション間の境界線の下にある場合、カーソルをSplitHCursに変換するのを防ぐにはどうすればよいですか?
しかし、主な問題は、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();
}
しかし、ユーザーがドックを浮かせようとすると、実際に機能します。
それが完全な答えではないことは知っていますが、それが非常に難しいことを証明したり、助けたりするかもしれません。とにかく、誰かがこの問題の効率的な解決策を見つけたら、それは非常に素晴らしいことです.