void ConsoleWidget::ToggleConsole() { if (!graphicsView) return; QGraphicsScene *graphicsScene = proxyWidget->scene(); if (!graphicsScene) return; proxyWidget->setVisible(proxyWidget->isVisible()); int currentHeight = graphicsView->height() * height; if (!proxyWidget->isVisible()) { slideAnimation->setStartValue(QRect(0, 0, graphicsView->width(), 0)); slideAnimation->setEndValue(QRect(0, 0, graphicsView->width(), currentHeight )); // Not bringing to front, works in UiProxyWidgets, hmm... graphicsScene->setActiveWindow(proxyWidget); graphicsScene->setFocusItem(proxyWidget, Qt::ActiveWindowFocusReason); if (lineEdit) lineEdit->setFocus(Qt::MouseFocusReason); proxyWidget->show(); } else { slideAnimation->setStartValue(QRect(0, 0, graphicsView->width(), currentHeight)); slideAnimation->setEndValue(QRect(0, 0, graphicsView->width(), 0)); proxyWidget->hide(); } slideAnimation->start(); }