0

いくつかのログを表示しているように、アイテムの数をリストする方法を知りたいと思いました。実際、ネットワークからある種のパケットを受信したので、ユーザーのGUIにある種のログを表示したいと思います。現在、リストウィジェットを選択しましたが、他に方法があるかどうか知りたいと思いました。

4

3 に答える 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 を使用してデータを列に分割することもできます。List/Tree Widget は、すばやく追加してすばやく削除できるため、優れています。

テキスト ウィジェットを使用してそのようなことを行う人もいますが、データが多いとパフォーマンスが低下します。

于 2012-05-15T14:24:37.160 に答える