*

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のクロス環境を構築してみた

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

記事を読む

toppers

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

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

記事を読む

no image

C言語でEV3開発(9)-opOUTPUT_SPEEDコマンド

どもです。 今回のエントリーでは、前回に引き続きEV3のモーターを動かしていきます。 ただし、単

記事を読む

no image

C言語でEV3開発(10)-opOUTPUT_CLEAR_COUNTコマンド

どもです。 前回のエントリーのラストで、「モーターを動かすコマンド」と書きましたが、今回紹介するコ

記事を読む

eclipse_cdt_top_100

C言語でEV3開発(3)

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

記事を読む

no image

C言語でEV3開発(11)-opOUTPUT_STEP_POWERコマンド

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

記事を読む

no image

QtでRaspberryPi/GUI開発(3):ためしに時計を作ってみた(其の参)-StyleSheetの適用

どもです。 前回のエントリーでは、グループ化されたボタンに対するイベントハンドラについて書きました

記事を読む

no image

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

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

記事を読む

toppers

C言語でEV3開発(23)-モーターの性能確認

どもです。 今回は、EV3に付属しているモーター(Lモーター/Mモーター)の性能について調べてみた

記事を読む

toppers

C言語でEV3開発(16)-TOPPERS/HRP2 EV3 で Bluetooth割込み

どもです。 今回は、EV3 の環境をTOPPERS/HRP2 EV3RT で作成したアプリをPC上

記事を読む

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開発(6):pigpioを使用したチャタリング対策

どもです。 前回のエントリーで、pigpioを使用したボタンを使用し

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

どもです。 RaspberryPiを購入して、LEDも手に入れたので

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

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

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

どもです。 ついに、念願のRaspberryPi3対応のタッチスクリ

no image
QtでRaspberryPi/GUI開発(3):ためしに時計を作ってみた(其の参)-StyleSheetの適用

どもです。 前回のエントリーでは、グループ化されたボタンに対するイベ

→もっと見る

PAGE TOP ↑