12月 202004
JKUGの忘年会のときにDaickiさんにimmodule for Qt4でのD-BUS対応についての話を振ってみたところ、そのあたりについては考えてないようだったのでQt4でのD-BUS関連についてここで簡単に書いておく。
なお、D-BUSが何か分からない人はDeveloper Worksの記事が良い参考になるだろう。
Qt4でのD-BUS対応についてはD-BUS with Qt 4 tutorialがおそらく唯一の情報源だが、SIGNALのemitの代わりにQDBusMessage::signal()を、D-BUSのメッセージをSLOTに接続することが出来るということに尽きる。
そのためにはD-BUSのサーバに接続したり、D-BUSのどのメッセージをどのSLOTに割り当てるのか指定したりする必要があるため、SIGNAL/SLOTほど簡単に使えるというわけにはいかないだろうが、ちょっとした手間でアプリケーションをD-BUS対応にすることが出来る。
immodule for Qtのようなプロジェクトだと動作中のアプリケーションの状態変更が可能なD-BUSへの接続はあったほうが望ましいと思う。問題はそれをどう実現するかだ。まず、いくつかの外部から接続できたほうがよさそうなメソッドをSLOTにする。ただし、現状でQt4のD-BUS対応はオプショナルになる可能性も高いと思うのでデフォルトではD-BUSには接続しない。ただし、IM-SwitcherでD-BUSへの接続とバインディングが可能か検討しておくのがいいと思う。
多分一番の問題はIM変更のメッセージのパスを何にするかだろうな。可能ならばgtkなどと協調してパスを定めるのがいいとは思うが。
Warning: count(): Parameter must be an array or an object that implements Countable in /home/asaki/www/wordpress/wp-includes/class-wp-comment-query.php on line 405