(1)QUdpSocket接收資料
進入槽后,要用這種方式讀取,否則可能會導致不發readyRead()信號 ,
while(udpSocket->bytesAvailable())
{
udpSocket->readDatagram(ch,size);
}
(2)QTcpSocket洗掉
一定要用deleteLater
一定要用deleteLater
一定要用deleteLater
否則會導致用戶物件溢位
(3)運行檔案附帶除錯輸出視窗
CONFIG += console pro
配合->http://github.com/851896022/QLog
(4)可以在pro檔案中寫上標記版本號+ico圖示
VERSION = 2019.08.08
RC_ICONS = main.ico
(5)解決socket傳輸后等中文亂碼
轉成base64傳輸
QByteArray(QString.toStdString().data()).toBase64()
(6)QT連接MySql后,長時間無操作(默認8小時)會斷開,
isOpen()等函式無法判斷,需執行sql陳述句才能發現失敗
QSqlDatabase.setConnectOptions("MYSQL_OPT_RECONNECT=1");
↑斷開后可自動重連
(7)在槽使用sender()函式可獲取到發出信號的物件的指標,
(8)子執行緒中使用QAxWidget不成功,原因是在QApplication的主執行緒中,會自動初始化COM庫,而新開辟的子執行緒不會自動初始化COM庫,所以需要我們手動來初始化,
//添加頭檔案
#include <windows.h>
//在執行緒開始的時候初始化COM庫:
HRESULT r = OleInitialize(0);
if (r != S_OK && r != S_FALSE)
{
qWarning("Qt:初始化Ole失敗(error %x)",(unsigned int)r);
}
使用結束后需要釋放掉:
OleUninitialize();
(9)file.write()以后呼叫file.flush()避免資料在快取中未成功寫入,
(10)延時,
{
QEventLoop loop;
QTimer t;
connect(&t,SIGNAL(timeout()),&loop,SLOT(quit()));
t.start(1000);
loop.exec();
}
(11)別用QWidget布局,別問我怎么知道的,
(12) 對QLCDNumber控制元件設定樣式,需要將QLCDNumber的segmentstyle設定為flat,
(13)QTimer::singleShot 計時器單次觸發,有時會有意想不到的效果
(14)QByteArray 有toHex 有fromHex 有toBase64有fromBase64
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/93391.html
標籤:C++
上一篇:【洛谷】P1478 陶陶摘蘋果(升級版)-全AC題解
下一篇:牛客網中矩陣中的路徑
