続・今更聞けないシグナル・スロット総整理


1. 初めに

今更聞けないシグナル・スロット総整理 記事のサンプルアプリを作りました!

GitHubに登録してありますので、よかったら参考にしてください。

それでは!!







ってわけにはいかないので、簡単ですが、アプリの説明をします。


2. こんな画面のアプリです

image1.png

image2.png

設定は、ToolBoxで「基本動作」、「オーバーロード対策」に分けています。

使い方はシンプル!

ComboBoxでconnect関数やシグナルの種類を選択→「connect」ボタンを押下→「send Signal」ボタンを押下

と順番に操作するだけです。

動作は、Qt Creator等のログ出力画面で確認できます。

ログ内容を検索すれば、どの処理を通っているかはわかると思います。


3. オーバーロード対策は、C++Version縛りに注意

今更聞けないシグナル・スロット総整理 の記事でも説明しましたが、C++11以上、またはC++14以上でないと動作しない記述方法があります。

C++Veresionはプロジェクトファイルで切り替えます。

CONFIG += c++11

or
CONFIG += c++14

のように記述すればC++11やC++14になります。

(※Qt5用の記述方法です。Qt4の記述方法は異なりますが省略します)

当然、ビルド設定で指定したコンパイラが、C+11やC++14に対応していない場合はビルドできません。

私は、Windows10上で「Qt_5_10_1_MinGW_32bit」を指定してビルドしています。

cppファイル上は、

#if __cplusplus  >= 201103L //C++11以上

#endif

or

#if __cplusplus >= 201402L //C++14以上
#endif

のように記述して、C++Version依存コードを囲っています。

※尚、自分の環境では、「CONFIG += c++11」を記述しなくてもC++11としてビルドされてしまう為、C++03の動作は確認できていません。

ビルドログを見ると、「-std=gnu++11」が付いている影響のように見えますが、明示的にC++03固定でビルドする方法がわからなかった為、C++11とC++14の動作差分だけ確認しています。

たぶん、判定はうまくいっているはずです。。。


4. 最後に

明日(2018/08/10)はコミケ1日目。

Qtの本が売られるようなので、買いに行くつもりです。

私自身もQt本(Qt5入門書)の執筆に挑戦中。

Qt初心者の方に読んでいただけるような本にしたいと思っていますので、ご要望があれば、気軽にコメント欄にコメントをお願いします。