gpt4 book ai didi

c++ - 通过 QTextStream 流式传输到 QTextEdit

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:21:21 24 4
gpt4 key购买 nike

我经常想使用 QTextEdit 来快速显示正在写的内容到一个流。也就是说,而不是写入 QTextStream out(stdout),我想要做类似的事情:

 QTextEdit qte; 
QTextStream out(qte);

如果我在写入 QTextStream 后发出信号,我可以做类似的事情附加到 QString。
问题是我希望界面是就像我流式传输到 stdout 等一样:

out << some data << endl;

关于如何实现这一点有什么想法吗?

提前致谢。

最佳答案

您可以创建一个输出到 QTextEdit 的 QIODevice。

class TextEditIoDevice : public QIODevice 
{
Q_OBJECT

public:
TextEditIoDevice(QTextEdit *const textEdit, QObject *const parent)
: QIODevice(parent)
, textEdit(textEdit)
{
open(QIODevice::WriteOnly|QIODevice::Text);
}

//...

protected:
qint64 readData(char *data, qint64 maxSize) { return 0; }
qint64 writeData(const char *data, qint64 maxSize)
{
if(textEdit)
{
textEdit->append(data);
}
return maxSize;
}

private:
QPointer<QTextEdit> textEdit;
};


// In some dialogs constructor
QTextStream ss(new TextEditIoDevice(*ui.textEdit, this));
ss << "Print formatted text " <<hex << 12 ;
// ...

关于c++ - 通过 QTextStream 流式传输到 QTextEdit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2350940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com