crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в логика использования QMidArea
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 12.9.2011, 17:15
  в слоте можно узнать кто послал сигнал:
QObject *o = sender();
Ну а за тем проверить является ли объект субокном или нет

Цитата(reseacher2011 @ 11.9.2011, 16:23) *
ws->setActiveSubWindow(qobject_cast<QMdiSubWindow*>(dw2));
зачем здесь приведение типа?
reseacher2011 Дата 11.9.2011, 13:23
  Пока в тестовом примере пробую так распознать тот документ слот которого нужно вызвать:

в конструкторе главного окна приложения
  ws = new QMdiArea;
  setCentralWidget(ws);
  DocWindow* dw     = new DocWindow;
  ws->addSubWindow(dw);
  connect(pactSave,SIGNAL(triggered()),this,SLOT(slotSave()));
  DocWindow* mw2     = new DocWindow;
  ws->addSubWindow(dw2);
  ws->setActiveSubWindow(qobject_cast<QMdiSubWindow*>(dw2));


void MDIProgram::slotSave(){
  DocWindow* cw = qobject_cast<DocWindow*>(ws->activeSubWindow());
  if(cw) {
     cw->slotSave();
  } else {
     std::cerr << "no active sub win \n";
  }
}


указатель cw содержит ноль, т.к. в консоле печатается no active sub wn.

Что делаю не так?

P.S. может нужно QSignalMapper, но мне непонятно зачем?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 13.12.2025, 4:13