Qt程式崩潰之自定義型別

2021-06-10 06:04:11 字數 637 閱讀 5589

qt常常會遇到崩潰的問題,在pc機上問題較少,但是交叉編譯到arm上之後,問題就會隔三差五的顯示出來,或許跟作業系統的成熟度有關?結合最近的心得來談談這個問題。

第乙個問題就是自定義型別。在我們開發程式的時候難免要用到自定義資料型別或者物件,一般情況下我們定義出物件的屬性、方法和建構函式就可以了,但是在qt中我們還需要析構函式以及為型別宣告qmetatype。

析構函式當然是用於銷毀物件。

為自定義型別宣告qmetatype,是因為在qt中負責自定義型別的類是qmetatype,否則qt不知道該如何讀取和儲存該類,也無法儲存到qvariant中。如何為型別宣告qmetatype呢?很簡單,在物件後面加入巨集q_declare_metatype()就行了。

基本**如下所示:

#ifndef machine_h

#define machine_h

#include class machine

;//將自定義型別宣告為 qmetatype

q_declare_metatype(machine)

#endif // machine_h

//~end~

qt序列化自定義物件 Qt之建立自定義型別

摘要 簡述 當使用qt建立使用者介面時,特別是那些帶有特殊控制和特徵的介面時,開發者通常需要建立新資料型別來擴充套件或替換qt現有的的值型別集合。標準型別,比如 qsize qcolor和qstring都可以被儲存到qvariant物件中,在基於qobject的類中可用作屬性的型別,並且可以在訊號 ...

Qt註冊自定義型別

如果要在qt訊號槽中使用自定義型別,需要注意使用qregistermetatype對自定義型別進行註冊,當然在不跨執行緒時使用自定義型別signal slot來傳遞,可能不會出現什麼問題 一旦涉及跨執行緒就很容易出錯,回想下訊號槽的作用就是用來物件與物件之間通訊的,難免會跨執行緒,建議在使用自定義型...

Qt之自定義QEvent

2 如何定義個事件型別。qt中提供了 static int qevent registereventtype int hint 1 用來定義程式中唯一的事件型別。4 postevent和sendevent的區別 1 sendevent使用notify 函式直接給receiver傳送事件。不支援多執行...