私はQtライブラリを使ってC++で書かれたGUIを持っています。私のアプリケーションでは、TreeViewオブジェクトを使用しました。このオブジェクトの再利用を容易にするために、私はQObjectsが継承できるテンプレートクラスを作成しました。 MOCは、テンプレートクラスで働くことができないので、私はこのようなクラスを作った:テンプレートの利点を取得中終了時にQtアプリケーションがクラッシュする
がclass Tree : public QObject, public TreeTemplate<TreeType, TreeItemType>
{
Q_OBJECT
};
これは、(TreeTemplateはQObjectをを継承するか、Q_OBJECTマクロを使用していない)だけTreeクラスはMOCを使用することができます。
私の問題は、私のアプリケーションを終了すると、(QApplicationクリーンアップを終了してスキップしても)クラッシュしてしまうことです。私は、 "静的メタオブジェクト"を使って、mocの生成クラスに問題があると思っています
処理できない__ASM__
の使用のため、valgrindは使用できません。 :-(
テンプレートクラスから継承テンプレートQtのクラスを使用して(+ MOC)の私のデザインは、この問題を引き起こす場合は、誰もが知ってい
クラッシュである:?。終了後のlibc.so
gdbバックトレースには何が表示されますか? –
空の仮想デストラクタを追加すると何か変更されますか? –
Qtの終了時の私のクラッシュの大部分は、クラスのインスタンスを2倍にしたときに発生しました。ほとんどの場合、これは所有権を持つQtコンテナにクラスのインスタンスを渡したとき(コンテナが自動的に破棄する)、自分のコードで破棄しようとしたときに発生します。 – jwernerny