*

QtでRaspberryPi/GUI開発(2):ためしに時計を作ってみた(其の弐)

公開日: : C++, C言語, Qt, 開発

どもです。
前回のエントリーでは、ラジオボタンのグループ化と、選択されたボタンの特定方法まで記載しました。
今回のエントリーでは、その続き(?)でグループ化されたボタンに対するイベントハンドラについて書きます。

1.イベントハンドラの定義
Qtでイベントハンドラを宣言する場合、通常のC++に+αの記述が必要になります。
それは、「slots:」の記載です。
ヘッダーファイルでイベントハンドラを宣言する際には、アクセス指定子に「slots:」が追記された範囲に記述する必要があります。
たとえば、下記のようになります。

「slots:」が付与されていないとイベントハンドラとして認識されず、イベントに紐付けることができません。

2.connectしよう
Qtでイベントハンドラを設定するためには、connectメソッドを使用します。
詳細については、connectのヘルプを参照してください。
また、イベントハンドラの設定については、QMainWindowクラスを継承したクラスで実施するのが一般的のようです。

GUIオブジェクトのイベントに対するイベントハンドラは、下記のコードで設定可能です。

connect()関数の第1、および第2引数ではイベントを発生させるGUIオブジェクト、および紐付けたいイベント(シグナル)を指定します。
第3、および第4引数では、イベントを受け取るオブジェクト、およびイベントハンドラ(スロット)を指定しています。
その際には、SIGNAL()、SLOT()マクロを使用しましょう。

なお、QtDesignerでもイベントハンドラ(シグナル/スロット)を設定可能なのですが、こちらでは独自のイベントハンドラ(上述のコードでのonDateDisplayConfigGroupClicked(int)、あるいはonTimeDisplayConfigGroupClicked(int))は指定できないようです。
アクセス指定子を「public:」に設定しても、結果は変わりませんでした。

3.イベントハンドラを実装しよう
はい。実装して下さい。
今回作成した「時計」では、下記のように実装しています。

onDateDisplayConfigGroupClicked(int)、およびonTimeDisplayConfigGroupClicked(int)の引数をコメントアウトしていますが、これは使用していない変数に対する警告を非表示にするためです。
それ以外に、特に深い理由・目的はありません。
あしからず。

上記の実装により、ラジオボタンが押される度にイベントハンドハンドラ(onDateDisplayConfigGroupClicked(int)、およびonTimeDisplayConfigGroupClicked(int))が呼び出され、選択されたボタンに対応して日時の表示が更新されます。
コードおよびプロジェクト全体を、GitHubで公開しています。
是非一度、実行してみてください。

4.なぜかなぜか続きます
残念ながら、今回のエントリーでも書きたいことが書き切れませんでした。
なので、まだ続きます。
あと1回くらいで完了にしたいです。

ではっ!

関連記事

no image

C言語でEV3開発(17)-コマンドによるTOPPERS/HRP2 EV3RT アプリケーションの制御(コントロール)

どもです。 今回は、TOPPERS/HRP2 EV3RT で作成したアプリをPC上から操作するため

記事を読む

RasPi_Qt

QtでRaspberryPi/GUI開発(4):イベントハンドラの設定

どもです。 前回のエントリーで、「タッチスクリーンを買った」と書きました。 今回からは、このタッ

記事を読む

eclipse_cdt_top_100

C言語でEV3開発(3)

どもです。 今回のエントリーの内容は、前回まででセットアップした環境で、実際にEV3上で動く実行フ

記事を読む

eclipse-juno-logo

C言語でEV3開発(2)

どもです。 今回のエントリーの内容は、前回に引き続き「EV3の開発環境の構築」の追記です。

記事を読む

no image

C言語でEV3開発(15)-TOPPERS/HRP2 EV3 で PID制御

どもです。 今回のエントリーは、コレまでのエントリーから内容を変えて、モーターの動作の制御をします

記事を読む

RasPi_Qt

QtでRaspberryPi/GUI開発(5):pigpioを使ってみた

どもです。 RaspberryPiを購入して、LEDも手に入れたのでコレをチカらせてみようと思いま

記事を読む

eclipse-juno-logo

C言語でEV3開発(1)

どもです。 2回目の投稿。 本格的な投稿としては、初めての投稿になります。 内容は、LEG

記事を読む

toppers

C言語でEV3開発(28)-EV3の移動距離を計算できるようにしてみた

(テーマ) C言語でEV3開発(28)-EV3の移動距離を計算できるようにしてみた (下書き

記事を読む

no image

C言語でEV3開発(4)

どもです。 今回のエントリーは、前回のエントリー内容/EclipseでEV3の実行ファイルをビルド

記事を読む

toppers

C言語でEV3開発(26)-EV3で機械学習(1)-QLearningをC#に委譲してみた

どもです。 前回の投稿では、Q-LearningをEV3本体に実装してみたら、メモリが足りなくて動

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

RasPi_Qt
QtでRaspberryPi/GUI開発(10)-SPI通信をしてみた(その3)

どもです。 えー。 「Qtで…」とか書いておきながら、今回もやっぱ

RasPi_Qt
QtでRaspberryPi/GUI開発(10)-SPI通信をしてみた(その2)

どもです。 えー。 「Qtで…」とか書いておきながら、今回もやっぱ

raspberry-pi
QtでRaspberryPi/GUI開発(9)-SPI通信をしてみた

どもです。 えー。 「Qtで…」とか書いておきながら、今回はQtは

GitHub
GitHubのFreeプランでのPrivate Repository数が無制限になったので試してみた

どもです。 年明けに、「おっ♪」と思うようなニュースがありました。

RasPi_Qt
QtでRaspberryPi/GUI開発(8):pigpioを使用したチャタリング対策の問題の対策

どもです。 だいぶ、間が空いてしまいました。 久しぶりの更新です。

→もっと見る

PAGE TOP ↑