@SuppressWarnings("unused") private void toggle() { QWidget current = panels.currentWidget(); QWidget next = panels.widget((panels.currentIndex() + 1) % 2); // make sure the layout is up to date... next.setGeometry(current.geometry()); QPixmap startpm = QPixmap.grabWidget(current); QPixmap endpm = QPixmap.grabWidget(next); Overlay overlay = new Overlay(startpm, endpm); overlay.setTransition(transition); overlay.setParent(this); overlay.setGeometry(panels.geometry()); overlay.show(); panels.setCurrentIndex((panels.currentIndex() + 1) % 2); }