Page 1 of 1

2.9 wxAuiMDI

Posted: Wed Sep 30, 2009 8:49 am
by borr_1
Решил попробовать 2.9 Скачал 2.9.0. И сразу всплыли проблему с wxAuiMDIParentFrame/wxAuiMDIChildFrame

1. Созждаю wxAuiMDIChildFrame

Code: Select all

OrgStruct *find = new OrgStruct((wxAuiMDIParentFrame*)wxGetApp().GetTopWindow());
    //find->Show(true);
	find->Layout();
OrgStruct это класс wxAuiMDIChildFrame. Формочка появляется но все элементы на ней не растягиваются по ширине окна хотя стоит expand нужно минимизировать/максимизировать окно чтобы его элементы приняли нужные размеры.

2. Если закрываю окно главного приложения, но некоторые дочерние окна еще открыты вываливается ошибка. Нужно перед закрытием вручную закрывать все дочерние окна. Это конечно не проблема, но осадок есть. Раньше это делалось за меня.

Posted: Wed Sep 30, 2009 10:04 am
by van_user
Я пока такими компонентами не пользовался. Может надо немного по-другому их использовать ( справку новую читал?).

Posted: Wed Sep 30, 2009 2:13 pm
by borr_1
Собирал с MinGW 4.4 при сборке debug релиза в самом конце выдало ошибку, но все либы собрала (вроде все работает)
При отладке с gdb постоянно валиться
Program received signal SIGTRAP, Trace/breakpoint trap.
0x7c92a3e2 in ntdll!DbgUiIssueRemoteBreakin () from C:\WINDOWS\system32\ntdll.dll

И отладчик может останавливаться вне точки останова.
Решил задав отладчику
handle SIGTRAP noprint
handle SIGTRAP nostop

wxDataViewTreeCtrl не позволяет создавать колонки.
Но возможность создать TreeCtrl с колонками появилась в примерах в dataview надо смотреть там есть.

Posted: Wed Sep 30, 2009 4:12 pm
by T-Rex
Я вроде во второй своей статье по AUI делал что-то подобное на AUI MDI. Может моя поделка подойдет?

Posted: Thu Oct 01, 2009 4:39 am
by borr_1
Это статья, которая сделайте мне красиво? Я примерно по ней и делал, только без wxAuiManager (мне бласти пока не нужны). В 2.8.9/2.8.10 вышеперечисленного поведения не было. Все работало нормально.
Эти грабли конечно можно обойти
1. При закрытии главной формы в OnClose перебирать все формы и закрывать их самому
2. Вновь созданной форме делать SetSize по сайзу рабочей области главной формы.

Но повторюсь в 2.8.10 я такого поведения не наблюдал. С размерами правда была проблема но делать дочерней формочке Layout вместо Show помогло, а в 2.9 это уже не работает.

Posted: Thu Oct 01, 2009 6:06 am
by van_user
borr_1 wrote:Собирал с MinGW 4.4 при сборке debug релиза в самом конце выдало ошибку, но все либы собрала (вроде все работает)
При отладке с gdb постоянно валиться
Program received signal SIGTRAP, Trace/breakpoint trap.
0x7c92a3e2 in ntdll!DbgUiIssueRemoteBreakin () from C:\WINDOWS\system32\ntdll.dll

И отладчик может останавливаться вне точки останова.
Решил задав компилятору
handle SIGTRAP noprint
handle SIGTRAP nostop
У меня тоже останавливается. Грешу на бета версию виджетов :) .У себя просто в текстовом файле набрал нужное количество continue и вставляю в момент запуска :) - так и добираюсь до кода.
borr_1 wrote:wxDataViewTreeCtrl не позволяет создавать колонки.
Но возможность создать TreeCtrl с колонками появилась в примерах в dataview надо смотреть там есть.
С чего ты решил что не может? Если не ошибаюсь, то в том примере wxDataViewTreeCtrl как раз и используется. Просто к нему еше wxDataViewModel нужно крутить( по справке можно создать никуда более не заглядывая).

Posted: Thu Oct 01, 2009 8:43 am
by borr_1
Там опечатка (вчера мозги уже закипали) handle SIGTRAP noprint или handle SIGTRAP nostop нужно задавать не компилятору а отладчику gdb в параметрах отладки в IDE или в самом начале отослать gdb как команду.

По второму вопросу:
Мне нужно чтобы было как в этом примере на первой закладке а там

Code: Select all

 m_ctrl[0] =
                new wxDataViewCtrl( parent, ID_MUSIC_CTRL, wxDefaultPosition,
                                    wxDefaultSize, style );
а wxDataViewTreeCtrl на четвертой, но такого эффекта я бы мог добиться и на wxTreeCtrl.

Главный вывод пока такой что wxTreeListCtrl собирается на 2.9 и работает.

Posted: Thu Oct 01, 2009 12:40 pm
by van_user
borr_1 wrote:Там опечатка
А я как надо сразу и прочитал :) .
borr_1 wrote:Мне нужно чтобы было как в этом примере на первой закладке а там

Code: Select all

 m_ctrl[0] = new wxDataViewCtrl( parent, ID_MUSIC_CTRL, wxDefaultPosition, wxDefaultSize, style );
Извиняюсь, действительно wxDataViewCtrl. Тут уже беглое чтение сыграло роковую роль :) . А в чем сложность использования его вместо wxDataViewTreeCtrl? Если в wxDataViewModel, то для базовой функциональности там, практически, ничего и писать не надо - все под копирку. (сам перелазил с wxTreeCtrl)