読者です 読者をやめる 読者になる 読者になる

C++ DB アクセス フレームワーク

表題のフレームワークを探して見ると「QxOrm」がありました。
Qtをインストールする必要があるみたいですが。。。丁度Qtで作ろうとしていたので良し⭐︎

毎度のことながら、英語のサイトしか見つからず(探してもいませんが(笑))
まぁインストールして使用しましょうとなりました。

なんでも、Javaで使用するHibernate (このサイトがわかりやすいかも?)
->  XMLでDB接続情報などを読み込みNoSQLでの実装を可能にするフレームワーク 

拙い英語力で読んで見ると、JPAの様なことやってくれるみたい

Java Persistence API - Wikipedia

本当は、JPAみたいな処理を作成するか?などと考えていましたが。。。
ちょいと、QxOrmを使ってから考えようと思います
実際には、アノテーションの実装がC++では可能な様に思えるのです。
まだ、C++は1ヶ月ちょいほどの経験しかなく。。。力及ばず(笑)

とにかく下の図の様に

f:id:Takunoji:20170317231146p:plain

アプリ名→アプリケーションの詳細情報→アプリが使用するスキーマの指定
をDBの設定で変更できる様にしたい。
つまり、新規でアプリを作成する→DBスキーマを追加と新規部分を作成する

。。。とできるだけ少ない工数でアプリケーションの追加を行える様にしたい。



Windows 10 Iot core セットアップ

Qtのセットアップなどをやってきましたが、
最終的には、ラズパイにインストールして起動しようと思ってます。
【問題】
Linuxベースの「ラズビアン」だと、
デプロイ(作成したアプリをラズビアンにインストール)するときには
ラズビアンでビルド(コンパイル~リソースファイルの配置までを行う事を)
しないといけません。

【対応策】
いろいろと考えた結果、「WindowsOSならビルドした起動ファイルをそのままインストールすればいいんじゃね?」となりました。

Windows 10 Iot Coreのインストール】※英語でした。。。
1.使用するハードウェア(今回はRaspberry Pi 2)を選択
※下にGitもあるので参考に見てみるのもアリ☆

f:id:Takunoji:20170325101539p:plain

2.SDカードでインストールかNOOBSでインストールするか。

f:id:Takunoji:20170325101509p:plain

3.➀Windows10の(2015年頃リリースバージョン)以降のOSでやってください
  ②ダッシュボードを利用する場合にインストールしてください
  ※上記のように解釈しました。間違ってたらごめんなさい。。。
  →結局、ダッシュボードは必要でした(笑)インストールします

f:id:Takunoji:20170325101938p:plain

「Download Dashbord」をクリックして「setup.exe」をダウンロードします。

f:id:Takunoji:20170325104005p:plain

「インストール」をクリックするといストール処理が走ります。(5~10分)

f:id:Takunoji:20170325104044p:plain

そして、ダッシュボードが起動します。

f:id:Takunoji:20170325105102p:plain

今回使用するデバイスは「Raspberry Pi 2」、OSはWindows Iot Core(ver14393.953)
OSのバージョンはコマンドプロンプトを開き、「>winver」コマンドで確認できます。

f:id:Takunoji:20170325105605p:plainコマンドを叩くと↓

f:id:Takunoji:20170325105803p:plain

細かい入力をしてインストール
※今回はLAN(有線)でインターネットに接続してます。

f:id:Takunoji:20170325110458p:plain

インストールが終わったら、今度はインストールしたSDカードをラズパイにさして起動します。
次回はラズパイを起動します。

Qt QSettings 使い方

前回に引き続き、QSettingsクラスの使い方を調べます。
※リファレンスを参照しました。

【基本的な使い方】※PROファイルに「QT += core」が記載されている事
・QSettingsを使う時には、会社名、ドメイン名、プラットホーム名などの設定
・画面タイプの設定。
CSSと同様に背景色...
と設定するようだ。設定に使用した値などをKey=Valueで保持する、
QtのExamples\Qt-5.6\widgets\tools\settingseditor\inifilesにあるファイル

f:id:Takunoji:20170323220623p:plain

のように各設定値を保持するようだ。取得、設定(保存)はリファレンスに書いてあるのでそちらを参照されたし。

使えないこともないが、考えていることと少し違うので他のクラスを調査する。

 

Qt 設定ファイルの読み込み

前回は、Javaでのファイル読み込みを試しに実装してみました。
今度は、Qtでの設定ファイル読み込みを実装したいと思います。。。が
何を設定するのか?そこをクリアにしたいと思います。
Qtリファレンスによると・・・以下の項目を設定するようです(一部)
・アプリケーション名
・ファイル名
・フォーマット
・表示タイプ...
ここら辺は調査します

↓自動作成されたソースに、赤線部分を追加しています。
【PROファイル】

f:id:Takunoji:20170322205243p:plain


【ヘッダファイル】

f:id:Takunoji:20170322203429p:plain
【ソースファイル】

f:id:Takunoji:20170322203446p:plain

これだけでイケるようです。詳細部分については次回。。。

File読込 Javaでやる場合

汎用画面APを作成するにあたりQt開発環境ができたので、設計に戻ります。
とにもかくにもファイル読み込みが必要なのでまずはJavaでのファイル読み込み

1.準備
プロジェクトにビルドパス(リソースフォルダ)を追加
【プロジェクトを右クリック→ビルドパスを追加】

f:id:Takunoji:20170321223013p:plain
2.コーディング

f:id:Takunoji:20170321223230p:plain

※ソース(eclipseプロジェクトは、ここにアップしてあります)

まぁINPUTにファイルパス(ファイル名も)、出力にファイルの内容・・・
そんな感じで実装になる。

ファイルから読んだデータをクラスオブジェクトもしくは、コンテキストに保存したい
【ファイルリード】→【コンテキストに設定】→【フィールド(メンバ変数)に保存】
のような処理順序になる。
C++での実装も同様になるが、FileReaderクラスなど標準ライブラリにあるのか?
調べますか。。。

Qt UI部分の作成

スムーズに作業が進むことに幸せを感じています(笑)

今度は、UI部分の作成に入ります。
まとめると下の図のようになります。

f:id:Takunoji:20170320202347p:plain

実際の手順に関しては、動画とりました。
UI部分は、実際にいじってみるのとデザインをちゃんと考えないといかんですな(笑)

youtu.be

次回は、ファイル読み込みについてJavaで実装してみます。

Hello Qt やっと開発です。

長かった(実質3日)環境構築も終わり、実装に入ります。

やっぱり、「ハローワールド」ならぬ・・・Qt版で実装します。

 

早速、QtCreatorを起動します。

f:id:Takunoji:20170320155032p:plain

プロジェクトの作成時に、Qtのソースにアクセスしやすいようにプロジェクトを作成します。(ディレクトリの場所を相対パスでしていしますので。。。)

f:id:Takunoji:20170320155225p:plain

プロジェクト作成時にフォームを作成するにチェックを入れてください。
出ないとすべてコードで画面を作成することになります。
※それはそれでよいと思います。

JavaFx(自分の時代はJavaSwing)などでの画面作成になるとコードで画面の作成を行います。
public class JavaFxTest  extends Application {
    @Override
    public void start(Stage stage) {
         stage.add(ラベル。。。);
                        ・

                        ・  
}

といった感じのコードになると思います。※何も見ないで書きましたので注意

そして、画面とりあえずは、.proファイルをみて
以下のように、QT += widgetsがついているか確認してください。
自分は、いきなりハマりました。

f:id:Takunoji:20170320155843p:plain

そして、コードは何も書きませんでした。実行結果などは↓参照です。

m.youtube.com