まずソリューション
あなたはユーザーによってサイズ変更されたウィンドウを防ぐために、あなたのウィンドウのフラグに次のフラグを追加することができます。ここでは
setWindowFlags(this->windowFlags() |= Qt::FramelessWindowHint);
はWindow Flagsに関するいくつかの詳細情報です。
セカンド(醜い)実験ソリューション
これは汚い回避策の一種である...私はこれがきれいではないことを、事実を十分に認識です。
私は、メインウィンドウの領域が残っているときにカーソルを手動で変更するこの小さなメインウィンドウを書きました。
注:副作用を考慮する必要があります。子ウィジェットに必要な別のカーソルシェイプがあるかもしれませんが、これは完全なアプリケーションのカーソルをオーバーライドします。
これは、さらなる開発および単純なアプリケーションの出発点として使用することができます。
ヘッダー:
class CMainWindow :
public QMainWindow
{
public:
CMainWindow(QWidget* parent = nullptr);
virtual ~CMainWindow(void);
protected:
virtual void leaveEvent(QEvent *event);
virtual void enterEvent(QEvent *event);
};
CPP:
CMainWindow::CMainWindow(QWidget* parent) : QMainWindow(parent)
{
setMouseTracking(true);
}
CMainWindow::~CMainWindow(void)
{
}
void CMainWindow::leaveEvent(QEvent *event)
{
qApp->setOverrideCursor(QCursor(Qt::ArrowCursor));
QMainWindow::leaveEvent(event);
}
void CMainWindow::enterEvent(QEvent *event)
{
qApp->restoreOverrideCursor();
QMainWindow::enterEvent(event);
}
出典
2013-08-30 05:02:42
Exa
興味深い質問です。私はこれが可能であるとは確信していません。これはウィンドウマネージャの機能ではありませんか?** Qtはこのカーソルを制御できないことがあります**。おそらくあなたの質問にタグを追加する必要があります。 'ウィンドウマネージャー'?どのようなOSですか?どのウィンドウマネージャを使用していますか?あなたの問題を解決するためには別の種類の専門知識が必要になるかもしれません。 – Greenflow
わかりません - ウィンドウフラグを 'Qt :: Dialog | QT :: Windowは何ですか? –
メインウィンドウ用ですか?どのQtバージョンを使用していますか? – thuga