Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: maks от Март 25, 2009, 15:50



Название: Как в MDI окне сделать панель с отображением октрытых окон.
Отправлено: maks от Март 25, 2009, 15:50
Добрый день.
У мнея такой вопрос.
Надо в MDI окне сделать панеь рядом со статус баром в которой отображались бы название окон которые в данный момент открыты в в MDI окне. Названия эти должны быть кликабельны для перехода на выбранное окно.
Как такое сделать?
В какую сторону копать?


Название: Re: Как в MDI окне сделать панель с отображением октрытых окон.
Отправлено: miha-ha от Март 25, 2009, 16:05
Код:
 
void MainWindow::updateWindowMenu()
 {
     windowMenu->clear();
     windowMenu->addAction(closeAct);
     windowMenu->addAction(closeAllAct);
     windowMenu->addSeparator();
     windowMenu->addAction(tileAct);
     windowMenu->addAction(cascadeAct);
     windowMenu->addSeparator();
     windowMenu->addAction(nextAct);
     windowMenu->addAction(previousAct);
     windowMenu->addAction(separatorAct);

     QList<QMdiSubWindow *> windows = mdiArea->subWindowList();
     separatorAct->setVisible(!windows.isEmpty());

     for (int i = 0; i < windows.size(); ++i) {
         MdiChild *child = qobject_cast<MdiChild *>(windows.at(i)->widget());

         QString text;
         if (i < 9) {
             text = tr("&%1 %2").arg(i + 1)
                                .arg(child->userFriendlyCurrentFile());
         } else {
             text = tr("%1 %2").arg(i + 1)
                               .arg(child->userFriendlyCurrentFile());
         }
         QAction *action  = windowMenu->addAction(text);
         action->setCheckable(true);
         action ->setChecked(child == activeMdiChild());
         connect(action, SIGNAL(triggered()), windowMapper, SLOT(map()));
         windowMapper->setMapping(action, windows.at(i));
     }
 }
а вообще копать в сторону документации QT :)


Название: Re: Как в MDI окне сделать панель с отображением октрытых окон.
Отправлено: spirit от Март 25, 2009, 16:13
есть реализация в Qt Solutions, называется Window Menu. см. тут (http://www.prog.org.ru/topic_8863_0.html).