*

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

ではっ!

関連記事

RasPi_Qt

Rasbianの新しいバージョンが出たので、クロス環境を更新してみた。

どもです。 RaspberryPiのOS:Raspbianの新しいバージョンが、少し前(…なの

記事を読む

no image

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

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

記事を読む

Splash

EV3開発サポートツール(3)-Ev3Controller

どもです。 今回は、以前ちらりと紹介した、Ev3のモーターの出力を調整するアプリケーションについて

記事を読む

MindStormControl_SprachScreen

EV3開発サポートツール(1)-C#のユーザーコントロール開発

どもです。 突然ですが、今回はC#に関するエントリになります。 具体的には、C#/WPFで、独自

記事を読む

no image

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

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

記事を読む

OpenCvLogo

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

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

記事を読む

DIY_eye_catch

自宅で電子工作(2)-ラズパイのSPIコネクタ自作

どもです。 今回は、電子工作です。 1.何を作った 今回紹介(?)するのは、Raspber

記事を読む

raspberry-pi

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

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

記事を読む

no image

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

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

記事を読む

eclipse_4.3_kepler

eclipse/CDTにおけるgdbでのデバッグ中に発生するpythonのエラー

どもです。 今回のエントリーは、Eclipse上でのデバッグの際に「pythonのエンコードエラー

記事を読む

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

think_about_utest
VisualStudioで実行した単体テストの結果の出力(3)-テスト実行からレポート生成までをツールで自動化

どもです。 前々回、前回と、VisualStudio/C#での単

think_about_utest
VisualStudioで実行した単体テストの結果の出力(2)-出力ファイルの読める化

どもです。 前回の続きです。 前回は、VisualStud

think_about_utest
VisualStudioで実行した単体テストの結果の出力(1)-ファイルへの出力

どもです。 最近、VisualStudio/C#でよく開発してい

think_about_utest
単体テストの効率化を考える(6)-スタブの自動生成ツール

どもです。 「単体テストの効率化について考える」の6回目です。

think_about_utest
単体テストの効率化を考える(5)-スタブの自動生成への入力

どもです。 「単体テストの効率化について考える」の5回目です。

→もっと見る

PAGE TOP ↑