是否有可能(更重要的是 - 如何 - )将输出流重定向到 QTextBox 中。这样,如果我在应用程序中任何地方编写 std::cout << "test"
,它都会被重定向到我定义的文本框中?
我尝试了很明显的方法(其中 ui.textEdit 是指向文本编辑框的指针):
std::cout.rdbuf(ui.textEdit);
std::cout << "test";
然而,这样做不起作用(显然)。- 重定向cout到qDebug也不起作用(甚至将qDebug定向到文本字段也不行)。
顺便说一下,我正在使用qt4.8...
编辑: 因此,我尝试了邮件列表中发布的解决方案。但现在出现了访问冲突。
class MainInterface : public QMainWindow
{
Q_OBJECT
....
private:
QDebugStream qout
使用构造函数:
MainInterface::MainInterface(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags),
qout(std::cout, ui.textEdit)
{
在一个成员函数中,下面这行代码被发布:
std::cout << "Project Loaded" << std::endl;
现在这行代码导致了“qscoped_pointer”的访问冲突。(我应该将此问题发布为更详细的单独问题吗?)
编辑:好吧,“解决方案”是只在ui.textEdit完全创建后声明qout。