我想知道如何列出項目數量,比如我們正在顯示一些日誌。 實際上,我收到了來自網絡的某些數據包,我想在用戶界面上顯示某種日誌。 目前我選擇了List Widget,但我很想知道是否有其他方法可以這樣做?Qt中的日誌列表
Qt中的日誌列表
回答
猜測你的目的只是爲了記錄,你可以使用qDebug()
,因爲它是最簡單和最容易記錄的。
如果你想有一些豐富的功能,如搜索,過濾和排序,我甚至會使用QTreeWidget將數據拆分成列。 List/Tree Widget會很好,因爲你有快速追加,快速刪除。
有的人用文字小部件做這樣的事情,但它有更糟糕的性能自動當有大量的數據。
So Tree Widget在大量數據的性能上比Text Browser好得多? –
基於模型的數據存儲具有比小於或的QTextEdit文字QPlainTextEdit瀏覽器 –
方式更好的性能更好的性能。後兩者對於日誌來說完全沒有用處,並且在過去的一兩年中似乎還沒有解決過性能衰退問題。它們只有在人工修改完成時纔有用。改變他們的內容往往是一個禁忌。我最終編寫了一個自定義LogView類,但使用模型和視圖同樣合理。 –
我使用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. 事件日誌列表表
- 2. 從日誌文件列表
- 3. 日誌表中的外鍵
- 4. 從Qt 5 WebView獲取日誌輸出?
- 5. Qt /嵌入式日誌工具
- 6. 日誌記錄設施和Qt
- 7. 沒有日誌輸出Qt Creator
- 8. PySide中的QLabel列表/ Qt
- 9. 重複日誌報表系統日誌
- 10. 的logback SLF4J無法獲得日誌報表日誌文件中
- 11. unix中的日誌文件中的ids搜索列表
- 12. websphere中的日誌和夥伴日誌
- 13. 在每個aws日誌組中列出日誌流
- 14. 在SSIS 2012中截斷的日誌列
- 15. 日誌表聚合
- 16. 更改日誌表
- 17. Powershell Building日誌表
- 18. PHP關鍵字日誌腳本中的字塊列表
- 19. 如何在一個列表中過濾相同的日誌值?
- 20. Redshift中的語法錯誤日誌表
- 21. 表示apache日誌中的ipv6條目
- 22. 如何從日誌列表中列出所有通話記錄,包括短信和電子郵件日誌?
- 23. 日誌中的PhoneGap
- 24. Qt中的字符串對的列表
- 25. 瞭解Postgres日誌列
- 26. Git日誌列表提交特定於某個日期
- 27. AWK:tomcat中日誌
- 28. CocoaLibSpotify日誌中
- 29. 無法解析logstash中的日誌文件中的日誌
- 30. qt中的日曆控件
,但我想知道什麼是上顯示的Qt上它記錄了最好的部件用戶在GUI上。 –