使用 QT 时遇到的问题及解决办法
使用 QT 時遇到的問題及解決辦法
Use multi-arg instead [clazy-qstring-arg]
不要使用一連串的 arg().arg().arg()
QString("%1 %2").arg(a).arg(b); // Bad QString("%1 %2").arg(a, b); // one less temporary heap allocationSlots named on_foo_bar are error prone [clazy-connect-by-name]
原因:
因為在處理 信號-槽 關系時,是通過 ui designer 中的 Go to slot 讓程序自動生成,這種自動生成的弱點就是有一天,在 ui designer 中改了控件的名字,但此時編譯也不會報錯,程序還是正常跑,編譯也不提示錯誤。這樣,控件就相當于連不到槽函數上去,就失效了。
解決辦法:
不要通過 ui designer 的 Go to slot 自動生成 信號-槽 的連接關系,手動建立該關系即可。
Pass a context object as 3rd connect parameter [clazy-connect-3arg-lambda]
原因:
這是 clazy 給的代碼質量警告,不是 QT 的編譯警告。
QLayout: Attempting to add QLayout "" to MainWindow "", which already has a layout.
原因:
因為 QMainWindow 中使用布局的時候 QMainWindow 默認已經設置過一個布局了,當再設置一個的時候會報錯。
解決辦法:
// 創建一個QWidget實例 QWidget *widget = new QWidget(); // 將創建的實例設置為centralWidget this->setCentralWidget(widget); // 創建一個主布局 QGridLayout *mainLayout = new QGridLayout(this); // 將widget的布局設置為mainLayout widget->setLayout(mainLayout);DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80004005 ()
原因:
文件路徑不對或者文件名是中文的
總結
以上是生活随笔為你收集整理的使用 QT 时遇到的问题及解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为利用 QT 制作的项目设置图标
- 下一篇: s3c2440移植MQTT