#include #include #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->dockWidget->setWidget(new QLabel("dock widget 1")); QDockWidget *dw = new QDockWidget; dw->setWidget(new QLabel("dock widget 2")); tabifyDockWidget(ui->dockWidget, dw); connect(ui->tabWidget, SIGNAL(currentChanged(int)), this, SLOT(updateDock(int))); } MainWindow::~MainWindow() { delete ui; } void MainWindow::changeEvent(QEvent *e) { QMainWindow::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } void MainWindow::updateDock(int index) { if (index == 0) { // ui->dockWidget->activateWindow(); // ui->dockWidget->raise(); // ui->dockWidget->show(); // ui->dockWidget->setVisible(true); // ui->dockWidget->setFocus(Qt::ActiveWindowFocusReason); } else { QList dockList = tabifiedDockWidgets(ui->dockWidget); // dockList.at(index-1)->activateWindow(); // ui->dockWidget->raise(); // dockList.at(index-1)->show(); // dockList.at(index-1)->setVisible(true); // dockList.at(index-1)->setFocus(Qt::ActiveWindowFocusReason); } }