2.9 wxAuiMDI

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

2.9 wxAuiMDI

Post by borr_1 » Wed Sep 30, 2009 8:49 am

Решил попробовать 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. Если закрываю окно главного приложения, но некоторые дочерние окна еще открыты вываливается ошибка. Нужно перед закрытием вручную закрывать все дочерние окна. Это конечно не проблема, но осадок есть. Раньше это делалось за меня.

van_user
Experienced Solver
Experienced Solver
Posts: 55
Joined: Wed Jun 11, 2008 9:28 pm
Location: UA

Post by van_user » Wed Sep 30, 2009 10:04 am

Я пока такими компонентами не пользовался. Может надо немного по-другому их использовать ( справку новую читал?).

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Post by borr_1 » Wed Sep 30, 2009 2:13 pm

Собирал с 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 надо смотреть там есть.
Last edited by borr_1 on Thu Oct 01, 2009 9:27 am, edited 1 time in total.
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse

User avatar
T-Rex
Moderator
Moderator
Posts: 1198
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex » Wed Sep 30, 2009 4:12 pm

Я вроде во второй своей статье по AUI делал что-то подобное на AUI MDI. Может моя поделка подойдет?

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Post by borr_1 » Thu Oct 01, 2009 4:39 am

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

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

van_user
Experienced Solver
Experienced Solver
Posts: 55
Joined: Wed Jun 11, 2008 9:28 pm
Location: UA

Post by van_user » Thu Oct 01, 2009 6:06 am

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 нужно крутить( по справке можно создать никуда более не заглядывая).

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Post by borr_1 » Thu Oct 01, 2009 8:43 am

Там опечатка (вчера мозги уже закипали) 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 и работает.

van_user
Experienced Solver
Experienced Solver
Posts: 55
Joined: Wed Jun 11, 2008 9:28 pm
Location: UA

Post by van_user » Thu Oct 01, 2009 12:40 pm

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)

Post Reply