2013-03-09 85 views
0

我完全是创建GUIS的初学者,我正在使用wxwidgets在CodeBlocks中创建GUI程序。我下面这个教程在这里:用于C++ GUI的WXwidgets:

http://wiki.codeblocks.org/index.php?title=WxSmith_tutorials

我已经找到了如何创建对话框和框架。现在,我用C++创建了一个程序,该程序从.txt文件中读取信息,并调用一个方法displayInfo(),该方法使用cout输出这些信息。我想要做的就是在一个窗口上打印这些信息,通过点击一个按钮,说:“打印信息”。

我很难找到的部分是如何从框架的main.cpp中调用我的displayInfo()方法,以及如何在窗口而不是终端上显示该信息。我试图在框架的main.cpp中导入我的类的头文件,并调用displayInfo(),但我认为这不是正确的方法。

任何帮助,将不胜感激。

回答

2

wxWidgets有一些预定义的对话框用于显示少量文本。

wxMessageBox description

否则,你将不得不使用的DrawText方法的面板或窗口。

+0

是的,这是有效的,但如果需要显示大量的文本,它将无法正常工作。你会对这个案子有什么建议吗? – FranXh 2013-03-10 03:31:24

2

我建议使用文本控件,然后重定向COUT到文本控件

像这样:

#include <iostream> 

    wxTextCtrl *control = new wxTextCtrl(...); 

    wxStreamToTextRedirector redirect(control); 

    // all output to cout goes into the text control until the exit from current 
    // scope 

有关这一招整洁的变化更多的讨论,来看看:

http://docs.wxwidgets.org/2.8/wx_wxtextctrl.html

向下滚动到标题为:wxTextCtrl和C++流的部分