Russian Qt Forum
Октябрь 02, 2024, 15:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Еще раз про MDI  (Прочитано 1481 раз)
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« : Февраль 10, 2014, 13:20 »

Хочется, чтобы при максимизации субокна, у него оставался его title, чтоб его можно было "возить" по всему area (с появлением скроллов, разумеется), и чтобы другие окна сохраняли свою геометрию.
Вот, придумал такой костыль. Вроде, работает.
dsub.h:
Код:
class DSub : public QWidget {
  Q_OBJECT
public:
  QMdiSubWindow *su;
public:
  DSub();
public slots:
  void States(Qt::WindowStates, Qt::WindowStates);
};
dsub.c:
Код:
DSub::DSub() : QWidget()  // QGLWidget()
{
   ....
   su = par->area->addSubWindow(this);
   QObject::connect(su, SIGNAL(windowStateChanged(Qt::WindowStates, Qt::WindowStates)),
          this, SLOT(States(Qt::WindowStates, Qt::WindowStates)));
}
//----------------
void DSub::States(Qt::WindowStates old, Qt::WindowStates ne)
{
  if (ne & Qt::WindowMaximized) {
     su->setWindowState(old);
     su->move(0, 0);
     su->resize(mw->area->width(), mw->area->height());
  }
}
А нельзя ли этого добиться как-то более цивилизовано...
mw - это MainWindow
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #1 : Февраль 10, 2014, 19:05 »

Похоже, склоняюсь к тому, чтоб вообще от MDI отказаться. Его механизмы смутны, и мне мало что дают. tile и cascade как-нибудь сам реализую.
Есть MainWindow, центральный виджет, все окошки - его детки...
Завтра с утра и займусь... Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.053 секунд. Запросов: 22.