中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Qt的開發技巧有哪些

發布時間:2021-12-15 13:49:34 來源:億速云 閱讀:131 作者:iii 欄目:互聯網科技

這篇文章主要講解了“Qt的開發技巧有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Qt的開發技巧有哪些”吧!

  1. 很多人問Qt嵌入式平臺用哪個好,這里統一回答(當前時間節點2018年):imx6+335x比較穩定,性能高就用RK3288 RK3399,便宜的話就用全志H3,玩一玩可以用樹莓派香橙派。

  2. 對于大段的注釋代碼,建議用 #if 0 #endif 將代碼塊包含起來,而不是將該段代碼選中然后全部 // ,下次要打開這段代碼的話,又需要重新選中一次取消,如果采用的是 #if 0則只要把0改成1即可,效率大大提升。

  3. Qt打包發布,有很多辦法,Qt5以后提供了打包工具windeployqt(linux上為linuxdeployqt,mac上為macdeployqt)可以很方便的將應用程序打包,使用下來發現也不是萬能的,有時候會多打包一些沒有依賴的文件,有時候又會忘記打包一些插件尤其是用了qml的情況下,而且不能識別第三方庫,比如程序依賴ffmpeg,則對應的庫需要自行拷貝,終極大法就是將你的可執行文件復制到Qt安裝目錄下的bin目錄,然后整個一起打包,挨個刪除不大可能依賴的組件,直到刪到正常運行為止。

  4. Qt中的動畫,底層用的是QElapsedTimer定時器來完成處理,比如產生一些指定規則算法的數據,然后對屬性進行處理。

  5. 在繪制無背景顏色只有邊框顏色的圓形時候,可以用繪制360度的圓弧替代,效果完全一致。

QRect rect(-radius, -radius, radius * 2, radius * 2);
//以下兩種方法二選一,其實繪制360度的圓弧=繪制無背景的圓形
painter->drawArc(rect, 0, 360 * 16);
painter->drawEllipse(rect);
  1. 不要把d指針看的很玄乎,其實就是在類的實現文件定義了一個私有類,用來存放局部變量,個人建議在做一些小項目時,沒有太大必要引入這種機制,會降低代碼可讀性,增加復雜性,新手接受項目后會看的很懵逼。

  2. 很多人在繪制的時候,設置畫筆以為就只可以設置個單調的顏色,其實QPen還可以設置brush,這樣靈活性就提高不知道多少倍,比如設置QPen的brush以后,可以使用各種漸變,比如繪制漸變顏色的進度條和文字等,而不再是單調的一種顏色。

  3. 很多控件都帶有viewport,比如QTextEdit/QTableWidget/QScrollArea,有時候對這些控件直接處理的時候發現不起作用,需要對其viewport()設置才行,比如設置滾動條區域背景透明,需要使用scrollArea->viewport()->setStyleSheet("background-color:transparent;");而不是scrollArea->setStyleSheet("QScrollArea{background-color:transparent;}");

  4. 有時候設置了鼠標跟蹤setMouseTracking為真,如果該窗體上面還有其他控件,當鼠標移到其他控件上面的時候,父類的鼠標移動事件MouseMove識別不到了,此時需要用到HoverMove事件,需要先設置 setAttribute(Qt::WA_Hover, true);

  5. Qt封裝的QDateTime日期時間類非常強大,可以字符串和日期時間相互轉換,也可以毫秒數和日期時間相互轉換,還可以1970經過的秒數和日期時間相互轉換等。

QDateTime dateTime;
QString dateTime_str = dateTime.currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
//從字符串轉換為毫秒(需完整的年月日時分秒)
datetime.fromString("2011-09-10 12:07:50:541", "yyyy-MM-dd hh:mm:ss:zzz").toMSecsSinceEpoch();
//從字符串轉換為秒(需完整的年月日時分秒)
datetime.fromString("2011-09-10 12:07:50:541", "yyyy-MM-dd hh:mm:ss:zzz").toTime_t();
//從毫秒轉換到年月日時分秒
datetime.fromMSecsSinceEpoch(1315193829218).toString("yyyy-MM-dd hh:mm:ss:zzz");
//從秒轉換到年月日時分秒(若有zzz,則為000)
datetime.fromTime_t(1315193829).toString("yyyy-MM-dd hh:mm:ss[:zzz]");

感謝各位的閱讀,以上就是“Qt的開發技巧有哪些”的內容了,經過本文的學習后,相信大家對Qt的開發技巧有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

qt
AI

湘潭县| 双牌县| 肃北| 泌阳县| 永嘉县| 焉耆| 锦州市| 修文县| 利津县| 景宁| 逊克县| 安仁县| 三江| 商水县| 丽江市| 绥德县| 昌江| 星座| 宜兰县| 西盟| 马边| 台北市| 阿克苏市| 南通市| 旺苍县| 阳新县| 桦川县| 夹江县| 长汀县| 托克托县| 财经| 宣恩县| 东城区| 江津市| 青冈县| 商南县| 葫芦岛市| 海晏县| 密山市| 岑巩县| 土默特左旗|