0

私はqtアプリケーション、Qt::Toolウィンドウであるいくつかの子ウィジェットを持つウィンドウを持っています。

ウィンドウを最小化してからウィンドウ 7 に復元すると、子ウィジェットはすぐに表示されますが、親ウィンドウはアニメーションのためではありません。

この動作を防ぎ、メイン ウィンドウの後に子ウィンドウを表示する方法はありますか?

4

1 に答える 1

1

メイン ウィンドウの復元中にツール ウィンドウを非表示にしないのはなぜですか? このコードを使用して、ニーズに合わせて調整できます。

void MainWindow::changeEvent( QEvent* e )
{
  if ( e->type() == QEvent::WindowStateChange )
  {
    QWindowStateChangeEvent* event = 
        static_cast< QWindowStateChangeEvent* >( e );
    if ( event->oldState() & Qt::WindowMinimized ) {
      qDebug() << "The Window has been restored!";
    }
    else if ( (event->oldState() == Qt::WindowNoState) && 
              (this->windowState() == Qt::WindowMaximized) ) {
      qDebug() << "the window has been Maximized!";
    }
  }
}

たとえば、一定時間タイマーを開始し、スロットを子ツール ウィンドウに接続して、必要に応じて表示させることができます。

子ツール ウィンドウで透明度を操作して、メイン ウィンドウの効果をエミュレートすることもできます。

私が思い出したように、次のようなことができます:

setStyleSheet("background:transparent;");
setAttribute(Qt::WA_TranslucentBackground);
setWindowFlags(Qt::FramelessWindowHint);

それが役に立ったことを願っています!

于 2012-06-05T07:22:28.870 に答える