Я пытаюсь написать компонент wxWidgets приложения, которое вызывается другой частью приложения, так что нет главной программы wxWidgets. У меня возникают проблемы с поиском правильной последовательности вызовов.wxWidgets без основной программы wx - как закодировать?
Как я понимаю, сначала мне нужно подкласс wxApp
:
class TestApp : public wxApp {
public:
virtual bool OnInit() override;
};
bool TestApp::OnInit() {
cerr << "app init\n"<<flush;
}
Тогда мне нужно сделать что-то вроде этого, когда я хочу, чтобы запустить WxWidgets:
TestApp* app = new TestApp();
cerr << "a\n";
wxApp::SetInstance(app);
cerr << "b\n";
int argCount = 0;
char* argv[0];
if(! wxEntryStart(argCount, argv)) {
cerr << "wx failed to start\n";
wxExit();
}
cerr << "d\n";
int res = wxGetApp().OnRun();
Но он никогда не называет OnInit()
. Кто-нибудь знает, что я должен делать?
Этот вопрос отличается от wxWidgets: How to initialize wxApp without using macros and without entering the main application loop? в том, что они не хотите вызвать цикл обработки событий (таким образом они хотят wxEntryStart()
), но я делать хочу цикл событий (так, оказывается, я хочу wxEntry()
) ,
Возможный дубликат [WxWidgets: Как инициализировать wxApp без использования макросов и без ввода основного цикла приложения] (http://stackoverflow.com/questions/208373/wxwidgets- how-to-initialize-wxapp-without-use-macros-and-without-enter-the) – axalis