*

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回のエントリーでは、詰め込んだものを書ききれないので、何回かに分けて記載します。

ではっ!

関連記事

eclipse_oxygen

Linux/EclipseでRaspberryPiのクロス環境を構築してみた…がっ!

どもです。 前回のエントリでは、WindowsにRaspberryPi3のクロスコンパイル環境の構

記事を読む

raspberry-pi

RaspberryPi3対応のタッチスクリーンを買いました

どもです。 ついに、念願のRaspberryPi3対応のタッチスクリーンを買いました。 今回のエ

記事を読む

eclipse-juno-logo

C言語でEV3開発(2)

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

記事を読む

raspberry-pi

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

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

記事を読む

no image

C言語でEV3開発(12)-opOUTPUT_TIME_POWERコマンド

どもです。 今回のエントリーでは、これまた前回に引き続き、モーターを動かすためのコマンドについて書

記事を読む

toppers

C言語でEV3開発(22)-ロギング機能

どもです。 前回は、モーターの出力を制御する方法について記載しました。その際に、モータ/車体が期待

記事を読む

no image

Windows/EclipseでRaspberryPiのクロス環境を構築してみた

どもです。 今回は、Windows/EclipseでRaspberry Piのクロス環境を構築した

記事を読む

no image

Objective-CからC++コードを呼び出す

どもどもです。 今回は、突然ながらMacに関係する投稿です。 ソフト関係のことを勉強していて

記事を読む

toppers

C言語でEV3開発(20)-超音波センサと安全状態

どもです。 前回は、BluetoothでPCとEv3を接続してコマンドの送受信について書きました。

記事を読む

OpenCvLogo

RaspberryPiで物体検出(1)-白線検出への挑戦(1):輪郭検出による白線検出

どもです。 今回は、OpenCvを用いて道路の白線検出について、です。 1.今回の環境 O

記事を読む

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="">

Arduino_Logo
Arduino nano(中華版)をセットアップしてみた

どもです。 突然ですが、「Arduino nano」互換(なのか?)

raspberry-pi
libpigpioでのRaspberryPi3とArduinoのSPI通信

どもです。 今回は、libpigpioを使用してRaspberryP

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は

→もっと見る

PAGE TOP ↑