*

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

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

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

前回のエントリーで、Qtを触り始めたことを書きました。
それ以降、日々少しずつ触っています。
で、お試しで「時計」を作ってみたので、そのれについてのエントリーです。

1.何を作った?
はい。
時計です。
時間と日付と曜日を表示する時計です。

ただ、単純に時計を作っても面白くないので、表示を変更する機能を追加しました。
変更可能な表示内容は、

・時間:[HH:MM]と[H:M]
・日付:[MM/DD(WWW)]と[M/D(W)]

です。
具体的に書くと、たとえば「9/10(月) 9時5分」を表示する場合を示します。
時間は、
[HH:MM] → 09:05
[H:M] → 9:5
となり、日付は
[MM/DD(WWW)] → 09/10(月曜日)
[M/D(W)] → 9/10(水)
となります。

2.ウィンドウサイズの固定
今回作成した時計ですが、ウィンドウのサイズを固定しています。
もちろん最小化はできますが、画面上に表示されている間は、ウィンドウのサイズは変更できません。

QtのGUIの作成には、「Qt Designer」を使用します。
画面のサイズの設定は、この「Qt Designer」で行います。
しかしながら、この「Qt Designer」で設定可能な項目の中に「最大化ボタン」や「最小化ボタン」を表示する/しないの設定がありません。
そのため、直感的(?)な表示の設定ができませんでした。
そこでウィンドウのサイズを固定するためには、ウィンドウの最小/最大サイズの設定で対応します。
即ち、「minimumSize」と「maximumSize」の幅と高さを、それぞれ同じ値に設定します。
この設定により、ウィンドウのサイズが固定できます。
※下図参照
Qt_window_size_fix

3.ラジオボタン
3-1.ラジオボタンのグループ分け
時間と日付の設定の選択は、ラジオボタンで行います。
時間の表示の切り替え、日付および曜日の表示形式を、それぞれラジオボタンで選択できるようにします。すなわち、4つのボタンが必要になります。
しかし、ラジオボタンは、デフォルトではラジオボタンの組み合わせは設定されていません。
そのため、ラジオボタンの組み合わせを設定する必要があります。
設定の手順としては、
1.組み合わせにしたいラジオボタンを選択する。
2.選択されたラジオボタンのいずれかで、右クリックする。
3.表示されたコンテキストメニューから、「ボタングループに割り当て」を選択する。

コレで、選択されたラジオボタンは、同じグループに分類されました。

なお、作成したグループは、「buttonGroup」という名前に設定されています。
このグループ名は、オブジェクトインスペクタに表示されます。
さらに、プロパティエディタから設定/変更が可能です。

3-2.ラジオボタンの選択の取得
ラジオボタンについて、選択されたラジオボタンの判定/取得方法について、です。
Qtでは、先に記載したラジオボタンのグループにより、選択されているラジオボタンを判定します。
たとえば、「buttonGroup」に分類されたラジオボタンは、下記のコードで取得できます。

また、どのオブジェクトかは、objectNameプロパティにより判定ができます。実装は、下記の通りです。

これらのコードにより、どのラジオボタンが選択されているかが判定可能になります。

4.公開しています
今回作成・記述しているアプリケーションは、GitHubで公開しています。
見ていただけると、幸いです。

5.なぜか続きます。
今回作成した時計アプリですが、実は勢い「だけ」で作成しました。
そのため、色々考え、詰め込んでいるものがあります。
1回のエントリーでは、詰め込んだものを書ききれないので、何回かに分けて記載します。

ではっ!

関連記事

toppers

C言語でEV3開発(19)-コマンド通信処理でEchoBackしてみた

どもです。 前回は、Bluetoothの接続状態の変化に伴う、状態遷移について書きました。 今回

記事を読む

eclipse_cdt_top_100

C言語でEV3開発(3)

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

記事を読む

eclipse-juno-logo

C言語でEV3開発(2)

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

記事を読む

no image

C言語でEV3開発(4)

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

記事を読む

Qt_logo_2016

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

どもです。 前回のエントリーでは、ラジオボタンのグループ化と、選択されたボタンの特定方法まで記載し

記事を読む

RasPi_Qt

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

どもです。 えー。 「Qtで…」とか書いておきながら、今回もやっぱりQtは出てきません。 そろ

記事を読む

google_test_top

C言語でEV3開発(5)

どもです。 今回のエントリーは、前回のエントリーでちくっと触れた、「単体テスト」について、です。

記事を読む

eclipse_oxygen

苦肉の策でLinux/EclipseでRaspberryPiのクロス環境を構築してみた

どもです。 前回のエントリでは、仮想環境(VirtaulBox)を用いたRaspberryPi3の

記事を読む

toppers

C言語でEV3開発(25)-Q_Learningを実装してみた…が!?

どもです。 今回の内容は、「失敗しました」という内容です。 最近、流行になっている深層学習/

記事を読む

toppers

C言語でEV3開発(18)-モードの遷移の設計-コマンド通信処理の準備

 どもです。  今回は、前回紹介したEv3とBluetoothで通信する機能を

記事を読む

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 ↑