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

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

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

Сообщений: 290


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

Весьма любопытно вел себя MDI. Несколько окон замечательно создавалось. Но стоило
одно из них расширить на всю область (кнопочкой "экран") как при создании следующего окна программа молча вылетала. Просто кончалась безо всяких сообщений
А иногда и через одно-два создание, честно, логики ее поведения я так и не смог уловить.
Вот так я создавал окно.
Код:
DSub::DSub(DMain *par) : QWidget()  
// par - это отцовское окно, унаследованнное от QMainWindow
// area -  QMdiArea, сделанная центральным иджетом
{
   su = par->area->addSubWindow(this);
   //su->setWindowFlags(windowFlags() 
   //   || Qt::WindowTitleHint | Qt::WindowSystemMenuHint);
   // Вот из-за этого программа молча слетала
Стоило убрать то, что закомментировано, и все прекрасно заработало

А это кусок h-файла
Код:
class DSub : public QWidget {
  Q_OBJECT
public:
  QMdiSubWindow *su;
В общем-то в данный момент это не так и важно. Работает - и слава Богу.
Но интересно, в чем же дело, чтоб на грабли эти больше не наступать... Улыбающийся
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


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

su->setWindowFlags(windowFlags()  
   || Qt::WindowTitleHint | Qt::WindowSystemMenuHint);
Первое или логическое вместо побитового.
Тем самым сбрасываете флаг Qt::SubWindow (и возможно ещё какие-то нужные) и всё начинает глючить.
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #2 : Февраль 09, 2014, 13:35 »

Прошу прощения. Лишняя палка попала при переписывании. В самом деле там одна.
Проверил. Раскомментировал. Палка - одна (побитовая). Глюки возобновились.
« Последнее редактирование: Февраль 09, 2014, 13:39 от Day » Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #3 : Февраль 09, 2014, 14:40 »

Забыл уточнить. Windows XP, Qt 4.5
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Февраль 09, 2014, 20:04 »

Может эти флаги не совместимы с Субокнами?
Записан

Юра.
Day
Частый гость
***
Offline Offline

Сообщений: 290


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

Может эти флаги не совместимы с Субокнами?
Видимо, так. Уже не помню, зачем я их поставил. Тем более, что в субокнах и без этих флагов все нужные кнопочки есть. Кажется, это было, когда я еще пытался без MDI этими окнами управлять.
Но любопытно, что программа вылетала без единого звука.
Одно утешает. Может быть потерянный мной день кому-то поможет в аналогичной ситуации... Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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