Page 1 of 1

Разбор примера Aui

Posted: Wed Apr 04, 2018 4:02 pm
by McSeem
Доброго времени суток!
Я тут разбираюсь с примерами wxWidgets и мне нужно для своих проектов использовать Aui. Готовый пример Aui я собрал под Linux и Windows. Но дело в том, что данный пример представлен в виде одного cpp-файла, т.е. все классы определены и описаны в одном "спагетти-листинге" - для дальнейшей доработки это очень неудобно и я хочу выдернуть и расфасовать все классы по соответствующим h- и cpp-файлам. Получается пока туговато, есть несколько проблем, о чем и хочу спросить:
Когда пытаюсь вынести в отдельные файлы gui.h и gui.cpp класс MyFrame как положено - объявление в заголовочный файл, а имплементацию в cpp, то получаю ошибку компилляции:

Code: Select all

error: no matching function for call to 'wxAuiManager::AddPane(wxSizeReportCtrl*, wxAuiPaneInfo&)'
для такого кода:

Code: Select all

m_mgr.AddPane(CreateSizeReportCtrl(), wxAuiPaneInfo().
                  Name(wxT("test1")).Caption(wxT("Pane Caption")).
                  Top());
m_mgr в классе определяется как

Code: Select all

private:
    wxAuiManager m_mgr;
Не могу понять, почему для объекта m_mgr не может быть соответствующего метода wxAuiManager, если он объявлен как объект этого класса..? Я не особо силен в тонкостях объектной модели C++, она довольно запутанна, на мой взгляд, но все же, в чем здесь может быть дело? Прикладываю файлы gui.h, gui.cpp и оригинальный auidemo.cpp из примера Aui.

Re: Разбор примера Aui

Posted: Wed Apr 04, 2018 6:24 pm
by ONEEYEMAN
Dobrogo vremeni sutok,
Faily iz wxWidgets dolgny byt' vkljucheny (include'ed) pervymi. Poprobujte pomenjat mestami aui.h i gui.h v vashem ishodnike.

Spasibo.

Re: Разбор примера Aui

Posted: Thu Apr 05, 2018 10:30 am
by McSeem
ONEEYEMAN wrote:Dobrogo vremeni sutok,
Poprobujte pomenjat mestami aui.h i gui.h v vashem ishodnike.
Не прокатило. Даже не знаю, куда еще копать. Есть еще какие-нибудь идеи?

Re: Разбор примера Aui

Posted: Thu Apr 05, 2018 3:25 pm
by Serge_N
Когда я разбирался с AUI, я делал так как в архиве.... прилагаю

Re: Разбор примера Aui

Posted: Thu Apr 05, 2018 4:22 pm
by ONEEYEMAN
Dobrogo vremeni suto,

Metod wxAuiManager::AddPane() prinimaet pervym parametrom klass nasleduemyj ot wxWindow.

Sudja po vsemu klass wxSizeReportCtrl takovym ne javljaetsja. Tochnee skazat ne mogu potomu chto ishodnikov etogo klassa net.
Prosto proverte po ierarhii - moget prosto zabyli ukazat klass roditelja v fajle-zagolovke. Chto-to tipa:

Code: Select all

class wxSizeReportCtrl
{
};
vmesto

Code: Select all

class wxSizeReportCtrl : public wxWindow
{
};
Spasibo.

Re: Разбор примера Aui

Posted: Thu Apr 05, 2018 4:33 pm
by McSeem
В оригинале (auidemo.cpp, который я приложил в первом посте) класс wxSizeReportCtrl наследуется от wxControl, а wxControl, может быть (не знаю точно) может наследоваться от wxWindow. Попробую вынести по аналогии отдельно класс wxSizeReportCtrl и далее объявить его экземпляр так, чтобы для MyFrame были очевидны и доступны методы wxSizeReportCtrl. Спасибо за наводку.