我有一个 qt 应用程序,带有几个子小部件的窗口是 Qt::Tool 窗口。
当我最小化窗口然后在 Windows 7 上恢复时,子小部件会立即出现,但父窗口不是因为动画。
有什么办法可以防止这种行为并使子窗口出现在主窗口之后?
我有一个 qt 应用程序,带有几个子小部件的窗口是 Qt::Tool 窗口。
当我最小化窗口然后在 Windows 7 上恢复时,子小部件会立即出现,但父窗口不是因为动画。
有什么办法可以防止这种行为并使子窗口出现在主窗口之后?
为什么不在主窗口恢复时隐藏工具窗口?您可以使用这段代码并使其适应您的需求:
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);
希望有帮助!