Как я могу перенаправить стандартный ввод (istream) в wxWidgets? - PullRequest
4 голосов
/ 16 марта 2010

Я пытаюсь выяснить, как перенаправить istream в wxwidgets.

Я смог выполнить перенаправление ostream, вот как (чтобы вы знали, что я имею в виду):

  wxTextCtrl* stdoutctrl = new wxTextCtrl(...);
  wxStreamToTextRedirector redirect(stdoutctrl); //Redirect ostream
  std::cout<<"stdout -- does this work?"<<std::endl; //It worked.

Я уже некоторое время искал, и не могу найти, что перенаправил бы istream на какой-то wx-ввод (так что «cin» фактически запрашивал бы ввод у пользователя через wxWidgets) 1006 *

1 Ответ

3 голосов
/ 16 марта 2010

Нет, нет встроенного способа сделать это, так как гораздо реже хотеть перенаправить cin, как это, по сравнению с cout. И также не совсем понятно, как вы ожидаете, что он будет работать, то есть вы, вероятно, не можете просто сопоставить его с wxTextCtrl, как вы делаете с cout. И вообще, чтение - это блокирующая операция, в отличие от записи, поэтому совершенно непонятно, как можно структурировать приложение с графическим интерфейсом для этого.

Короче говоря, я не думаю, что вы можете портировать вашу консольную программу, используя cin, на подобные wxWidgets.

...