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

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
User avatar
McSeem
Earned a small fee
Earned a small fee
Posts: 13
Joined: Wed Aug 30, 2017 11:31 am

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

Post 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.
Attachments
auidemo.cpp
Оригинальный auidemo.cpp из примера Aui
(67.2 KiB) Downloaded 138 times
gui.h
Зоголовочный для MyFrame
(4.13 KiB) Downloaded 155 times
gui.cpp
Имплементация класса MyFrame
(16.69 KiB) Downloaded 157 times
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7458
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

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

Post 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.
User avatar
McSeem
Earned a small fee
Earned a small fee
Posts: 13
Joined: Wed Aug 30, 2017 11:31 am

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

Post by McSeem »

ONEEYEMAN wrote:Dobrogo vremeni sutok,
Poprobujte pomenjat mestami aui.h i gui.h v vashem ishodnike.
Не прокатило. Даже не знаю, куда еще копать. Есть еще какие-нибудь идеи?
Serge_N
Knows some wx things
Knows some wx things
Posts: 40
Joined: Thu Apr 13, 2017 1:34 pm

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

Post by Serge_N »

Когда я разбирался с AUI, я делал так как в архиве.... прилагаю
Attachments
myAUI.zip
(15.66 KiB) Downloaded 150 times
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7458
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

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

Post 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.
User avatar
McSeem
Earned a small fee
Earned a small fee
Posts: 13
Joined: Wed Aug 30, 2017 11:31 am

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

Post by McSeem »

В оригинале (auidemo.cpp, который я приложил в первом посте) класс wxSizeReportCtrl наследуется от wxControl, а wxControl, может быть (не знаю точно) может наследоваться от wxWindow. Попробую вынести по аналогии отдельно класс wxSizeReportCtrl и далее объявить его экземпляр так, чтобы для MyFrame были очевидны и доступны методы wxSizeReportCtrl. Спасибо за наводку.
Post Reply