*

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

ではっ!

関連記事

python

Ev3開発サポートツール(4)-Pythonによるグラフ表示

どもです。 前回のエントリーで、VisualStudioCommunityでのPythonの開発環

記事を読む

raspberry-pi

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

どもです。 前回のエントリーで、pigpioを使用したチャタリング対策について記載しました。 今

記事を読む

eclipse_4.3_kepler

elicpse/CDTでのgdbでのソースを追従したデバッグができない問題

どもです。 今回のエントリーは、Eclipse上でgdbを利用したデバッグ中に発生する問題について

記事を読む

toppers

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

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

記事を読む

eclipse-juno-logo

C言語でEV3開発(2)

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

記事を読む

toppers

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

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

記事を読む

no image

C言語でEV3開発(14)-opOUTPUT_TIME_SPEEDコマンド

どもです。 今回のエントリーは、モーターを動かすコマンドである「opOUTPUT_TIME_SPE

記事を読む

toppers

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

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

記事を読む

toppers

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

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

記事を読む

eclipse_oxygen

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

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

記事を読む

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

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

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

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対応のタッチスクリ

→もっと見る

PAGE TOP ↑