我想知道如何像我们显示一些日志那样列出项目的数量。实际上,我从网络收到了一些数据包,我想在 GUI 上为用户显示某种日志。目前我选择了 List Widget,但我很想知道是否还有其他方法可以做到这一点?
问问题
257 次
3 回答
1
我使用qInstallMsgHandler,然后根据某些命令行开关重定向到 GUI、控制台或日志文件。如果您有很多消息,您可能想要记录到文件中,但是对于短时间的行/项目,您可以记录到自定义的QStringListModel和可能带有它的 QListView。
基本上我已经扩展了引用链接中的示例和一个SO Question
#include <qapplication.h>
#include <stdio.h>
#include <stdlib.h>
void myMessageOutput(QtMsgType type, const char *msg)
{
switch (type) {
case QtDebugMsg:
fprintf(stderr, "Debug: %s\n", msg);
break;
case QtWarningMsg:
fprintf(stderr, "Warning: %s\n", msg);
break;
case QtCriticalMsg:
fprintf(stderr, "Critical: %s\n", msg);
break;
case QtFatalMsg:
fprintf(stderr, "Fatal: %s\n", msg);
abort();
}
}
int main(int argc, char **argv)
{
qInstallMsgHandler(myMessageOutput);
QApplication app(argc, argv);
...
return app.exec();
}
于 2012-05-15T15:17:26.490 回答
0
猜测您的目的仅用于记录,您可以使用qDebug()
它,因为它是最简单和最容易记录的。
于 2012-05-15T13:33:14.930 回答
0
如果你想拥有一些丰富的功能,比如搜索、过滤和排序,我什至会使用 QTreeWidget 将数据拆分为列。列表/树小部件会很好,因为您可以快速附加、快速删除。
有些人使用文本小部件来做这样的事情,但是当有很多数据时它的性能会更差。
于 2012-05-15T14:24:37.160 回答