我想知道如何列出项目数量,比如我们正在显示一些日志。 实际上我收到了来自网络的一些数据包,我想在GUI上为用户显示某种日志。 目前我选择了List Widget,但我有兴趣知道是否有其他方法可以这样做?
答案 0 :(得分: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();
}
答案 1 :(得分:0)
猜测您的目的仅用于记录,您可以使用qDebug()
,因为它是最简单和最容易记录的。
答案 2 :(得分:0)
如果你想拥有搜索,过滤和排序等丰富功能,我甚至会使用QTreeWidget将数据拆分成列。 List / Tree Widget会很好,因为你有快速追加,快速删除。
有些人使用文本小部件来做这件事,但是当有大量数据时,它的性能会更差。