mainWindow(QMainWindowから継承)でchildWindow(QMainWindowからも継承)を作成するアプリケーションがあり、実行すると、mainWindowをマスキングするchildWindowで両方のウィンドウが起動されます。
私が持っている mainWindow() コンストラクターで
setCentralWidget(this);
Linux では、mainWindow->titleBar をクリックすると、mainWindow が前面に表示されますが、Windows では機能しないようです。
プラットフォーム間で一貫した動作を実現するために、installEventFilter() と mouseEventHandler を追加して、左ボタンのマウス イベントを考慮しましたが、マウス イベント ハンドラー内で使用したどのメソッドも、必要な動作を実現するのに役立ちませんでした。
void mainWindow::mouseReleaseEvent(QMouseEvent* mevent)
{
if (Qt::LeftButton == mevent->button())
{
//this->raise();
//this->show();
//setCentralWidget(this);
}
}
タイトル バーを押すと (マウス イベント)、mainWindow() に切り替えるにはどうすればよいですか? Windows と Linux で動作が異なる理由はありますか? また、動作を一貫させるにはどうすればよいですか? Windows および Linux 用の Qt-4.8.4 のオープンソース バージョンを使用しています。