实时获取程序中qt所输出的信息,并显示到QTextBrowser上。
1.在main文件中添加以下内容
//xx为你的界面类名
xx *clk = NULL;
void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
// 加锁
QString message;
switch (type)
{
case QtDebugMsg:
message = QString("Debug:");
break;
case QtWarningMsg:
message = QString("Warning:");
break;
case QtCriticalMsg:
message = QString("Critical:");
break;
case QtFatalMsg:
message = QString("Fatal:");
break;
}
// 设置输出信息格式
//QString strDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
//QString strMessage = QString::fromLocal8Bit("%1").arg(localMsg.constData());
message.append(msg);
clk->showMsg(message);//通过调用showMsg()来显示输出内容
QFile file("log.txt");//输出到log.txt文件中
file.open(QIODevice::ReadWrite | QIODevice::Append);
QTextStream stream(&file);
stream << message << "\r\n";
file.flush();
file.close();
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
xx w;
clk = &w;
qInstallMessageHandler(myMessageOutput);
w.show();
return a.exec();
}
2.在自己的界面类中实现void showMsg(QString msg);函数
void xx::showMsg(QString msg)
{
ui->browser->append(msg);
}
这样就成功了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)