| | |
| | | 1. æ ¸å¿æ¨¡å |
| | | â1.1 线ç¨ç®¡çï¼QThread / QRunnableï¼â |
| | | âä½ç¨ï¼åå°çæ§é常éè¦å¼æ¥æ§è¡èæ¶ä»»å¡ï¼å¦æ°æ®ééãç½ç»éä¿¡ï¼ï¼é¿å
é»å¡ä¸»çº¿ç¨ã |
| | | âå®ç°ï¼ |
| | | 使ç¨Â QThread æÂ QRunnable å建ç¬ç«çå·¥ä½çº¿ç¨ã |
| | | éè¿Â QThreadPool 管ççº¿ç¨æ± ï¼ä¼åèµæºå©ç¨çã |
| | | âä¿¡å·æ§½æºå¶ï¼è·¨çº¿ç¨éä¿¡ï¼å°çæ§ç»æä¼ éå°ä¸»çº¿ç¨ã |
| | | â1.2 宿¶å¨ï¼QTimerï¼â |
| | | âä½ç¨ï¼å¨ææ§è§¦åçæ§ä»»å¡ï¼å¦å¿è·³æ£æµãèµæºè½®è¯¢ï¼ã |
| | | âå®ç°ï¼ |
| | | |
| | | 1.3 è¿ç¨ç®¡çï¼QProcessï¼â |
| | | âä½ç¨ï¼çæ§å¤é¨è¿ç¨çç¶æææ§è¡å½ä»¤è¡å·¥å
·ï¼ä¾å¦Â topãps çç³»ç»å½ä»¤ï¼ã |
| | | âå®ç°ï¼ |
| | | |
| | | |
| | | 2. æ°æ®é鿍¡å |
| | | â2.1 ç³»ç»èµæºçæ§ |
| | | âå®ç°ï¼ |
| | | âè·¨å¹³å°æ¯æï¼éè¿ Qt API æå¹³å°ç¸å
³æ¥å£ï¼å¦ Windows ç Win32 API æ Linux ç /proc æä»¶ç³»ç»ï¼è·å CPUãå
åãç£çãç½ç»çæ°æ®ã |
| | | âç¬¬ä¸æ¹åºéæï¼ä½¿ç¨Â libstatgrab æÂ Sigar ç跨平å°åºç®åèµæºééã |
| | | â2.2 ç½ç»çæ§ |
| | | âå®ç°ï¼ |
| | | 使ç¨Â QTcpSocket/QUdpSocket å®ç°ç½ç»éä¿¡çæ§ã |
| | | éè¿Â QNetworkAccessManagerÂ çæ§ HTTP 请æ±ç¶æã |
| | | |
| | | 3. æ°æ®åå¨ä¸å¤ç |
| | | â3.1 æ¥å¿æ¨¡åï¼Qt Logging Framework æç¬¬ä¸æ¹åºï¼â |
| | | âä½ç¨ï¼è®°å½çæ§äºä»¶ãé误信æ¯ã |
| | | âå®ç°ï¼ |
| | | 使ç¨Â qInstallMessageHandler èªå®ä¹æ¥å¿è¾åºï¼æä»¶ãæ°æ®åºãè¿ç¨æå¡å¨ï¼ã |
| | | éæÂ spdlog æÂ log4cpp å¢å¼ºæ¥å¿åè½ã |
| | | â3.2 æ°æ®åºäº¤äºï¼Qt SQLï¼â |
| | | âä½ç¨ï¼åå¨çæ§æ°æ®ï¼å¦å岿§è½ææ ï¼ã |
| | | âå®ç°ï¼ |
| | | |
| | | 4. éä¿¡ä¸åè¦æ¨¡å |
| | | â4.1 ç½ç»éä¿¡ï¼Qt Networkï¼â |
| | | âä½ç¨ï¼å°çæ§æ°æ®ä¸æ¥å°è¿ç¨æå¡å¨ææ¥æ¶æ§å¶æä»¤ã |
| | | âå®ç°ï¼ |
| | | 使ç¨Â QTcpServer/QTcpSocket æå»ºå®¢æ·ç«¯/æå¡ç«¯éä¿¡ã |
| | | éæÂ WebSocketï¼QWebSocketï¼å®ç°å®æ¶æ°æ®ä¼ è¾ã |
| | | â4.2 åè¦è§¦å |
| | | âå®ç°ï¼ |
| | | éè¿éå¼å¤æè§¦ååè¦ï¼å¦ CPU 使ç¨ç >90%ï¼ã |
| | | 使ç¨Â QSound æç³»ç»éç¥ï¼QSystemTrayIconï¼æç¤ºç¨æ·ã |
| | | éæé®ä»¶ï¼QSmtpï¼æçä¿¡ç½å
³åéåè¦ä¿¡æ¯ã |
| | | |
| | | 5. ç¨æ·çé¢ï¼å¯éï¼â |
| | | âä½ç¨ï¼æä¾å¯è§åçæ§é¢æ¿ï¼å¦ä»ªè¡¨çãå¾è¡¨ï¼ã |
| | | âå®ç°ï¼ |
| | | 使ç¨Â Qt Charts æÂ QCustomPlot ç»å¶å®æ¶æ²çº¿ã |
| | | éè¿Â QML æå»ºå¨æçé¢ï¼æ¯æè·¨å¹³å°å±ç¤ºã |
| | | |
| | | 6. é
置管ç |
| | | âä½ç¨ï¼å¨æé
ç½®çæ§åæ°ï¼å¦éæ ·é¢çãåè¦éå¼ï¼ã |
| | | âå®ç°ï¼ |
| | | 使ç¨Â QSettings åå¨é
ç½®æä»¶ï¼INI æ ¼å¼ææ³¨å表ï¼ã |
| | | éè¿ JSON/XMLï¼QJsonDocument/QDomDocumentï¼è§£æå¤æé
ç½®ã |
| | | |
| | | 7. è·¨å¹³å°æ¯æ |
| | | âå
³é®ç¹ï¼ |
| | | ä½¿ç¨ Qt çæ½è±¡å±ï¼å¦Â QFileãQDirï¼å¤çæä»¶è·¯å¾å·®å¼ã |
| | | éè¿æ¡ä»¶ç¼è¯ï¼#ifdef Q_OS_WINï¼éé
å¹³å°ç¹å®é»è¾ã |
| | | |
| | | 8. æ§è½ä¼å |
| | | âçç¥ï¼ |
| | | é¿å
å¨ä¸»çº¿ç¨ä¸æ§è¡é»å¡æä½ã |
| | | 使ç¨å
±äº«å
åï¼QSharedMemoryï¼æé¶æ·è´ææ¯åå°æ°æ®å¤å¶ã |
| | | å¯ç¨Â Qt ConcurrentÂ æ¡æ¶ç®åå¹¶è¡ä»»å¡ã |
| | | |
| | | âå
¸åæ¶æç¤ºä¾ |
| | | [主线ç¨] --(ä¿¡å·æ§½)--> [çæ§å·¥ä½çº¿ç¨] --> æ°æ®éé --> åå¨/åæ --> åè¦/å¯è§å |
| | | | | |
| | | |--(QProcess)--> å¤é¨è¿ç¨çæ§ |
| | | |--(QNetwork)--> ç½ç»ç¶ææ£æµ |
| | | |
| | | âæ»ç» |
| | | Qt åå°çæ§åç³»ç»çæ ¸å¿å¨äºï¼ |
| | | â1.弿¥ä¸å¤çº¿ç¨ï¼ä¿è¯ä¸»çº¿ç¨ååºè½åã |
| | | â2.跨平å°å
¼å®¹æ§ï¼éè¿ Qt API å±è½ç³»ç»å·®å¼ã |
| | | â3.模åå设计ï¼å°æ°æ®ééãå¤çãéä¿¡ãåå¨è§£è¦ã |
| | | â4.坿©å±æ§ï¼éè¿æä»¶æºå¶ï¼QPluginLoaderï¼å¨æå è½½åè½æ¨¡åã |
| | | |
| | | |