先看乙個普通的c++類的定義:
#include
using std::string;
class myclass
上述類的定義體現了qt的一些風格:
l類名的第乙個字母為大寫,類名包含的單詞使用「駝峰」風格分開,也即每個單詞的第乙個字母為大寫。這是qt類命名的通用方式。
l所在方法名的第乙個字母為小寫。單詞之間也是採用「駝峰」風格分開。這是qt方法的命名的通用方式。
l屬性text的getter和setter方法分別命名為text(getter)和settext(setter)。這是qt命名getter和setter方法的通用方式。
在程式設計中遵循這些結構化的方式將為你的實際編碼節省大量時間。
在qt中,所有的類都繼續於qobject類。如果讓上述類繼承自qobject,那麼,qobject將負責該類的一些物件的記憶體釋放,只要將父類傳遞給該類的物件例項即可。修改後的類定義如下所示:
#include
#include
using std::string;
class myclass : public qobject
;
下面分別說明兩種不同類定義下的使用區別:
第一種情況,不使用qt的動態記憶體管理方案的情況:
#include
int main( int argc, char **argv )
使用qt的動態記憶體管理的情況:
#include
int main( int argc, char **argv )
說明:在qt程式中,盡量使用qdebug()來列印資訊,它能保證在所有的平台上將資訊傳送到正確的地方。要想關閉qdebug(),只需在編譯時傳遞巨集定義qt_no_debug_output即可。
在qt編譯中,盡量不要使用stl庫中的類,這樣使得qt程式不依賴於第二個框架,所以上述類定義中的std:string可以全部用qstring來替換,修改後的類定義如下:
#include
#include
class myclass : public qobject
;
另外qt還對普通的c++進行了一些擴充套件,如訊號、槽以及元物件等,這些內容將在其他專題中介紹。
qt中使用pthread的undefined錯誤
pthread的庫不是linux系統的庫,所以在使用gcc或g 進行編譯的時候要加上 lpthread 如g o test main.cpp lpthread在qt中使用時也要將庫新增進去,如果不新增會出現undefined reference錯誤。如下 home qt project first ...
Qt中使用Http的總結
大主要分兩種情況 一.最簡單的方法,可能會造成阻塞 qnetworkrequest networkrequest qnetworkaccessmanager networkmanager networkrequest.seturl qurl url qnetworkreply reply netwo...
Qt中使用qml的方法
1.2 註冊c 類到qml中 qmlregistertype testqt 1,0,testcontrol 其中testcontrol為c 類的名稱,testqt為qml使用的資料 當qml要使用testcontrol的類時,需要包含import testqt1.0 注意 1.在qt5.12.2中,...