加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 将std :: cout重定向到QTextEdit

发布时间:2020-12-16 07:28:57 所属栏目:百科 来源:网络整理
导读:是否有可能(更重要的是-how-)将输出流重定向到QTextBox.如果我写std :: cout在应用程序中的任何地方“测试”它被重定向到我定义的文本框? 我尝试了明显的(其中ui.textEdit是指向文本编辑框的指针): std::cout.rdbuf(ui.textEdit);std::cout "test"; 但是这
是否有可能(更重要的是-how-)将输出流重定向到QTextBox.如果我写std :: cout<<在应用程序中的任何地方“测试”它被重定向到我定义的文本框? 我尝试了明显的(其中ui.textEdit是指向文本编辑框的指针):

std::cout.rdbuf(ui.textEdit);
std::cout << "test";

但是这不起作用. (明显). – 也没有将cout重定向到qDebug工作(甚至将qDebug指向文本字段).

我用的是qt4.8 btw …

编辑:
所以我尝试了邮件列表中发布的解决方案.但是现在出现了访问冲突.

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<< “项目已加载”<<的std :: ENDL; 该行现在导致来自“qscoped_pointer”的访问冲突. (作为单独的问题,我应该发布更详细的信息吗?) 编辑:嗯,“解决方案”只是在ui.textEdit完全创建后才声明qout.

解决方法

您可以将cout重置为您自己的ostream实现,该实现会发出挂钩到 append插槽的信号.因此,子问题/练习是:

>重定向cout
>将cout重定向到您自己的ostream实现或您可以扩展的实现
>向QTextBox发出信号

据我所知,这些子主题可在SO上获得

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读