Te1=new QTextBrowser(this);//顯示框 Te1->setText("程序輸出"); Te1->setGeometry(200,855,775,100);qt輸出cout,到指定Te1窗口
时间: 2024-02-03 10:04:05 浏览: 21
要将程序的 cout 输出到 QTextBrowser 中,可以通过重定向标准输出流来实现。
首先,需要声明一个派生自 QPlainTextEdit 的类,用于重载 write() 函数,将输出的内容添加到 QTextBrowser 中:
```cpp
class TextBrowserStream : public QPlainTextEdit
{
public:
void write(const QString& text)
{
this->appendPlainText(text);
}
};
```
然后,在程序中初始化一个 TextBrowserStream 对象,并将标准输出流重定向到该对象:
```cpp
TextBrowserStream stream;
std::streambuf* oldBuf = std::cout.rdbuf();
std::cout.rdbuf(&stream);
```
这样,程序中所有使用 cout 输出的内容都会被重定向到 TextBrowserStream 对象中。
最后,将 TextBrowserStream 对象添加到 QTextBrowser 中即可:
```cpp
Te1->setWidget(&stream);
```
完整的代码示例如下:
```cpp
#include <iostream>
#include <streambuf>
#include <QPlainTextEdit>
class TextBrowserStream : public QPlainTextEdit
{
public:
void write(const QString& text)
{
this->appendPlainText(text);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 创建 QTextBrowser 对象
QTextBrowser* Te1 = new QTextBrowser();
Te1->setGeometry(200,855,775,100);
// 创建 TextBrowserStream 对象
TextBrowserStream stream;
// 重定向标准输出流到 TextBrowserStream 对象
std::streambuf* oldBuf = std::cout.rdbuf();
std::cout.rdbuf(&stream);
// 将 TextBrowserStream 对象添加到 QTextBrowser 中
Te1->setWidget(&stream);
// 输出测试内容
std::cout << "Hello, world!" << std::endl;
return a.exec();
}
```