在 C/C++ 中将输出外壳流(cout 或 printf)显示到文本视图小部件 (GTK+ 3)

Displaying output shell stream (cout or printf) to Textview widget (GTK+ 3) in C/C++?

本文关键字:显示 文本 视图 GTK+ 小部 printf cout C++ 输出 外壳      更新时间:2023-10-16

我想使用textview小部件来显示整个程序中的输出,有一堆cout和printf,我在其中显示特定信息,现在我想在GTK+中使用GUI来显示我在命令外壳上看到的输出。

我在我需要使用 GIOchannel 的某个地方读到,在其他地方,他们只是建议写到 gtk_text_buffer_insert(),问题是后一个函数需要字符指针,我显示双精度和浮点数。选角不起作用,也不应该真正起作用。

我该怎么做?

您可以创建写入小组件的流缓冲区。您将从std::streambuf将字符串发送到任何小部件函数并使用使用此流缓冲区初始化的std::ostream派生一个类。如果无法将流传递到使用它的函数,则可以替换std::cout的流缓冲区(使用 std::cout.rdbuf(&sbuf))。但是,如果您还希望这些输出转到您的小部件,则需要替换您的printf()