2016-04-16 24 views
1

私はデザイナーベースのQtユーザーインターフェイスを試しています。デザイナーUIの機能の1つは、ウィジェットスロットが特殊な名前パターン( "on _...")に従う場合、ウィジェットスロットの自動接続です。手動でconnectSlotsByName()を呼び出す

ただし、UIの設定後すぐに接続が確立されているようです。私はこれが起こることを望んでいない。私はロード後に、不要なスロットコールを取得することなく、UIをプログラムで変更したいと考えています。

したがって、これらの接続が確立されたとき、つまりconnectSlotsByName()が呼び出されたときを明示的に制御できますか?

答えて

3

あなたは、いくつかの時間のために、このような を不要な信号を遮断するためにQObject::blockSignalsを使用することができます。

widget->blockSignals(true); 
//do work 
widget->blockSignals(false); 

また、あなたが特定の信号のためのdisconnect、その後connectを呼び出すことができます。

+0

これは適切な回避策です。ありがとう。私は自動機能を完全に避けることにしました。 (上記の問題に加えて、自己作成の接続で接続のコンパイル時のチェックが可能です)。 – Silicomancer

+0

コンパイル時に生成されたシグナル/スロット接続をチェックできるclangスタティックanaylyzerの拡張もあります。http://reviews.llvm.org/D14592とスタンドアロンツールhttps://github.com/etaoins/qconnectlint – fghj

関連する問題