Отображение выходного потока оболочки (cout или printf) для виджета Textview (GTK + 3) в C / C ++?

0

Я хотел бы использовать виджет textview для отображения выходов во всей моей программе, есть куча cout и printf, где я показываю конкретную информацию, теперь я хотел бы использовать графический интерфейс в GTK+ для отображения выходов, которые я вижу в командной оболочке.

Я где-то читал, что мне нужно использовать GIOchannel и в других местах, в другом месте они просто предложили написать gtk_text_buffer_insert(), проблема в том, что последняя функция принимает указатель на char, и я показываю двойные и плавающие. Кастинг не работает, и он не должен работать.

Как мне это сделать?

  • 0
    Есть способ взять double и float и представлять их как массивы символов. Смотрите здесь: stackoverflow.com/questions/332111/… . Оттуда просто передайте переменную массива в качестве аргумента-указателя для метода guy.
Теги:
user-interface
gtk

1 ответ

0

Вы можете создать запись буфера потока в свой виджет. Вы std::streambuf класс из std::streambuf отправки символьных строк любой функции виджета и используйте std::ostream инициализированный этим буфером потока. Вы можете заменить буфер потока std::cout (используя std::cout.rdbuf(&sbuf)), если вы не можете передать поток в функции, где он используется. Вам нужно будет заменить ваш printf() s, хотя, если вы также хотите, чтобы эти выходные данные поступали в ваш виджет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню