danpapa blog

趣味のプログラミング等について

VSCode(C#) + WinForms その2

SWD4CS

先回の記事
danpapa-hry.hateblo.jp


先回から約1か月。。。久しぶりにプログラムを書き続けましたw
まぁ、思い付きで書いてるので修正が多くて。とりあえずこんな感じで

f:id:danpapa_hry:20220130204659p:plain

ソースコードはここ
github.com

まだSWD4CSを使ってソフト作ってないので、バグはあると思います。
ま、使いながら修正していこうかと。。。誰でも修正・機能追加してくれてもいいんですよ。

今後
・プロパティの一部は編集できるので、もう少し増やしていこうかな。
・他コントロールの追加は必要になったら
・コントロールの階層リストは。。。面倒ですねぇ。
・イベント処理はまだ考えてません。
・ビルドの方法は・・・そのうち(VSCode + .net6.0 で dotnet run で動くはず)
・使い方は・・・気が向いたら

こんなところですかね。

VSCode(C#) + WinForms

明けましておめでとうございます。久しぶりの更新ですが、前置きはこのくらいで早速行ってみましょう。

SWD4CS

SWD4CSとはSimple WinForms Designer for CSharpの略です。
VisualStudioを使えば必要ないのですが。。。。重い、重すぎる。
VSCodeは軽くて好きなんですが、デザイナがない。。。ひたすら打ち込むのはきついです。
ってことで、簡単なGUI Designerみたいなものを作ってみました。(未完成ですが)

開発環境
・WIndows11 Home
・VisualStudio2022(C#) → VSCode + .net6.0

とりあえず動画

説明とか
デザイナの作り方ってどうやれば良いんでしょうかねぇ。。。全く分からず、思い付くままに書いてみました。
このソフトで目指してるのはVisualStudioやSharpDevelopのデザイナには程遠い、最小限の機能です。
・ポトペタでGUIを作れる
・デザインのコードを書いてくれる。
・Buttonなどの部品は後から簡単に追加できる。
・複雑な配置はあきらめる。(タブのような入れ子になった配置等)
ってことで、簡単なツール等を作る時に使おうかと考えています。

誰か良いもの作ってくれないかなぁ。。。って結構待ってたんですが、なかなか無いですねw
これも未実装の部分が沢山あるけど、下記に公開しておきます。
github.com
あ~、GitHubの使い方勉強してなかったので、こんなので良いのかなぁw

Linux開発環境構築−3

OpenCVのビルド

OpenCVのビルドにはCmakeを使うようなので、インストールします。(普通にsudo apt installで行いました)
ビルドはWindowsでもやっていたので、同じようにstaticです。
・BUILD_SHARED_LIBSのチェックを外す
この辺は他のサイトで詳しく書かれているはずなので、省略します。

CodeBlocksの設定

またここでハマりました!Windowsと同じように設定してもエラー!・・・疲れてきました。

ネットを彷徨うこと数日。。。英語全く出来ないんですよねぇ。。。で、見つけた情報が「ライブラリの順番が大事だ」とのこと。でも順番の正解はどこにも書かれてない!おぃおぃ、エラー見ながら順番入れ替えて、ってやってられるか!(途中でやめました)

更に彷徨いながら見つけた情報は、下記

g++ sample.cpp `pkg-config --cflags --libs opencv4` -o sampleB

これでコンパイル出来るらしい・・・pkg-configって?いろいろ調べるとCmakeでの設定にも「OPENCV_GENERATE_PKGCONFIG」ってある。これをチェックし再度ビルドしてみた。

「lib/pkgconfig」の中に「opencv4.pc」ってファイルが出来てた。中身はこれ

# Package Information for pkg-config

prefix=/home/hry/library/opencv
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/opencv4

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.5.3
Libs: -L${exec_prefix}/lib -lopencv_gapi -lopencv_highgui -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_video -lopencv_calib3d -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_videoio -lopencv_imgcodecs -lopencv_imgproc -lopencv_core
Libs.private: -L${exec_prefix}/lib/opencv4/3rdparty -llibprotobuf -lade -littnotify -llibjpeg-turbo -llibwebp -llibtiff -llibopenjp2 -lIlmImf -lquirc -lippiw -lippicv -L/usr/lib/x86_64-linux-gnu -lpng -lz -ldl -lm -lpthread -lrt
Cflags: -I${includedir}

ふむふむ、インクルードパス、ライブラリパス、ライブラリが書いてある。。。なぁんだ、結局同じじゃん!これもダメか。。。ん?ライブラリの順番が大事だったんだと思いだした。もしかして上記の順番でCodeBlocksに設定すればいけるのか?

とりあえず設定、(パスも)
f:id:danpapa_hry:20210906175203p:plain:w300

適当なサンプルを試すと動きました。とりあえずこれでおしまい。
何作ろうかな・・・

Linux開発環境構築−2

さて、ここからわからないことだらけだったので、記録しておきます。

CodeBlocksのインストール

sudo apt install でインストール出来るようですが、バージョンがちょっと古いらしい。ってことで直接ダウンロードしてきました
www.codeblocks.org
ここにアクセスして、左側の「Downloads」ー右側の「Download the binary release」ー「Linux 32 and 64-bit」ー「codeblocks_20.03_amd64_stable.tar.xz」をダウンロードしてきました。これ解凍(展開)すると17個の.debファイルがあります。全てインストールするようです。私は基本、GUIで操作したいのでGDebiパッケージインストーラーを使用してインストールするんですが、依存関係があるようで、なかなか思うようにインストールできませんでした。どこかで見たんですが、dpkg -i *.deb とかで全てインストール出来るようです(私は確認してませんが、)

全てインストールできたらCodeBlocksが使えるようになっていました。
f:id:danpapa_hry:20210905153825p:plain:w300

wxWidgetsのビルド

まず、下記からソースコードをダウンロードしてきます。(バージョンは3.1.5のようです)
www.wxwidgets.org


Windowsの時も同じですが、基本staticライブラリにします。下記でビルド方法を調べます。
wiki.wxwidgets.org
・適当なところに解凍(展開)して、そのフォルダーの中に「build-gtk」というフォルダを作成します。
・「build-gtk」のなかで端末を開いて下記でビルドしました。

../configure --disable-shared --with-gtk=3 --enable-unicode
make -j6

特に問題はなく、「build-gtk/lib」の中にlibwx_???といったファイルが出来上がっています。(17個)

CodeBlocksの設定

これ!はまりました。Windowsと同じように設定してもエラー、エラー、エラー。。。つらい。。。
で、やっと見つけた情報を元に行ったのが下記です。

設定に必要情報は下記で調べます
・「build-gtk」の中で端末を開きます。
・./wx-config --cxxflagsを実行すると、下記のようにincludeパス等が表示されます。これをコピーしておいてください。

./wx-config --cxxflags
-I/home/hry/wxWidgets-3.1.5/build-gtk/lib/wx/include/gtk3-unicode-static-3.1 -I/home/hry/wxWidgets-3.1.5/include -D_FILE_OFFSET_BITS=64 -D__WXGTK__ -pthread

・つぎはこれ。wx-config --libs all これも下記のようにlibraryパスとlibrary名等が表示されるので、これもコピーしておきます。

./wx-config --libs all
-L/home/hry/wxWidgets-3.1.5/build-gtk/lib -pthread   /home/hry/wxWidgets-3.1.5/build-gtk/lib/libwx_gtk3u_xrc-3.1.a /home/hry/wxWidgets-3.1.5/build-gtk/lib/libwx_gtk3u_stc-3.1.a /home/hry/wxWidgets-3.1.5/build-gtk/lib/libwx_gtk3u_richtext-3.1.a /home/hry/wxWidgets-3.1.5/build-gtk/lib/libwx_gtk3u_ribbon-3.1.a /home/hry/wxWidgets-3.1.5/build-gtk/lib/libwx_gtk3u_propgrid-3.1.a /home/hry/wxWidgets-3.1.5/build-gtk/lib/libwx_gtk3u_aui-3.1.a /home/hry/wxWidgets-3.1.5/build-gtk/lib/libwx_gtk3u_qa-3.1.a /home/hry/wxWidgets-3.1.5/build-gtk/lib/libwx_baseu_net-3.1.a /home/hry/wxWidgets-3.1.5/build-gtk/lib/libwx_gtk3u_html-3.1.a /home/hry/wxWidgets-3.1.5/build-gtk/lib/libwx_gtk3u_core-3.1.a /home/hry/wxWidgets-3.1.5/build-gtk/lib/libwx_baseu_xml-3.1.a /home/hry/wxWidgets-3.1.5/build-gtk/lib/libwx_baseu-3.1.a -lgthread-2.0 -pthread -lX11 -lXxf86vm -lSM -lgtk-3 -lgdk-3 -lpangocairo-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lXtst -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lwxtiff-3.1 -lwxjpeg-3.1 -lwxregexu-3.1 -lwxscintilla-3.1 -lexpat -lpng -lz -ldl -lm 

CodeBlocksの「設定」を開く

includeパス等は「コンパイラ」「other compiler options」
f:id:danpapa_hry:20210906165546p:plain:w300

libraryパスとlibrary名等は「リンカ設定」「他リンカオプション」
f:id:danpapa_hry:20210905163212p:plain:w300

これでwxWidgetsを使えるようになりました。
f:id:danpapa_hry:20210906170440p:plain:w300

あ、気づきました。。。CodeBlocksの日本語化飛ばしてます。。。
まぁ、調べれば出てきます(Windowsと同じだったはず)

今回はこれまで、次回はOpenCVです。

Linux開発環境構築−1

久しぶりの更新です。

現在のPC構成

Windows10

BodhiLinux

PC構成見直し

WIndowsは特に変更しないけど、Linuxの最近お気に入りがantiX Linuxです。
antixlinux.com
これ、BodhiLinuxより軽いかも?ってことでよく使っています。
でよく考えたら、Linuxでプログラム書くって。。。会社でAIとかのプログラムをPythonで書くか、DAN(息子)の質問にサンプルコードをJavaで書くか、位しか書いてない。。。

まぁ、これからraspiやJetsonでGUIが必要になってくる。処理速度を気にしなければTkinterwxPythonでいいけど、必要になってから準備してたら時間かかるし。。。よし、LinuxC++の開発環境を準備してみましょう(勉強しながら)

antiX Linuxのインストール

これはここで説明しなくても情報が沢山?あ・り・ま・す。。。あまり人気がないんですかねぇ。。。まぁインストールは検索すれば大丈夫。
ameblo.jp
私がよく参考にさせて頂いてる「極楽はぜのブログ」です。

ただ、私がインストールしたのはantiX Linux(Base)なので、ソフトがほどんど入ってないものです。日本語化後にインストールしたソフトはpcmanfm, gdebi, timeshift, chromeくらいでしょうか?

これに開発環境としてCodeBlocks wxWidgets OpenCV cmakeあたりをインストールしていきます。

ということで、今回はここまで。

ChromeBook化(Jumper EZbook 3 Pro)

久しぶりの更新です。まだまだコロナとか何かと大変ですが、頑張ってみます。

なぜChromeBook

まぁ、コロナとかで暇だったからw
購入してから2年くらいのJumper EZbook 3 Pro、これをChromeBookにしてみました。方法は色々あると思いますが、今まで試したことのない方法でやってみます。
ChromeBook 化の方法

この辺は過去にやったことがあります。

cloud-work.jp

これはやったことないです。詳細はリンク先を熟読して下さいw

で、出来たのがこれ。
f:id:danpapa_hry:20201005202057p:plain:w300
まぁ、ここまではそんなに難しくなかった。

これで何するの?
いやぁ〜難しい、確かに動作は軽いけど何しようw
軽さはBodhiLinuxより軽い(と感じる)ので、danpapaは結構好きです。ってことで色々悩んだ結果、これでアプリの開発をやってみます。
ただし、今までやったことでは面白くないので、やったことのないことでw

ChromeBook でやれそうなアプリ開発
あまり詳しくないんですが、AndroidStudioは定番でしょうか?他はLinuxが使えるので。。。はい、決定しましたw
ハイブリッドアプリを作成してみます。ハイブリッドアプリについてはググって下さいw以前から興味はあったんですがなかなか踏み出せずに。。。

開発環境は?

もちろんお気に入りのVSCodeに、Electron、BootStrapあたりでしょうか?(全くの初心者ですがw)
あ、WIndows用にもビルドしたいので、LinuxにWineも入れとけばいいみたい。

f:id:danpapa_hry:20201005204804p:plain:w300
まだまだアプリに程遠いですが、こんな感じで開発環境ができました。(開発環境の詳細は別途。。。)
まぁ、少しずつ勉強していきます。って感じで近況報告でした。(なんとか生きてますよw)

VSCode + JavaFX + SceneBuilder + EXE化

動画説明

先回はVSCode + JavaFX + SceneBuilderでデバッグできるまでを説明しました。
danpapa-hry.hateblo.jp

でも、この方法、danpapaにとっては面倒なんです。はい、横着なのでw
更に、JAR→EXE化とか難しすぎ&コマンド覚えきれませんwってことで、今回の動画がこれです。


先回までの内容を全てテンプレートにしちゃいました。新しいプロジェクトを作成するとファイルを準備してくれます。
そして、ビルドタスクを実行すると、EXE化までできるようにしました。まぁ、方法としては無茶苦茶な方法でやってますが、ずいぶん簡単になりました。それでは説明していきましょう!

環境構築方法
・まずこのファイルをダウンロードします。
https://yahoo.jp/box/eWvGUk (テンプレート用のファイルです)
・解凍(展開)して、ファイルを環境に合わせて編集します。(先回の説明と同じはず)
 1、Java11/.classpath (javafx.base.jar等のパス)
 2、Java11/.vscode/launch.json (--module-path から --add-modulesの間のパス)
・次にJava拡張機能のテンプレートを書き換えます(バックアップは各自取ってください)
 1、C:\Users\ユーザー名\.vscode\extensions\vscjava.vscode-java-dependency-0.9.0\templatesの中にある
   App.java.sampleとJava11というフォルダを編集したものに入れ替えてください。
・次にEXE化の為にlaunch4jというソフトを準備します。
launch4j.sourceforge.net
 1、ダウンロード&適当な場所へ展開
 2、launch4j.jarのあるフォルダーへPathを通してください。

とりあえずこれだけのはずです。もし配布するときはEXEとjreというフォルダをセットで配布することになります。
jreの容量を削減したい場合は、jlinkを使って必要な機能だけ抽出すれば随分削減できるはずです。
参考(全部入れてる):jlink --module-path D:\0000_APPS\0000_SourceCode\Java\0000_lib\javafx-jmods-11.0.2 --add-modules javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web --compress=2 --output jre

まぁ、テンプレートなので、必要なら変更すればいいだけです。
あ、勿論、VSCode拡張機能などは必要なので、先回の記事を見てください。

!!重要!!
もし環境構築して、新しいプロジェクトを作成したら、必ずタスクの実行を行ってください。
タスクの実行で必要なファイルが必要な場所へ移動されます。これをやらないでデバッグ開始しても
うまく動きません。

本当はVSCode拡張機能を作ればいいんですが、danpapaにそのスキルはございませんw
そのうち、誰かが良い方法を提供してくれるでしょう。

あ~、今回も見づらい&わかりにくい文章で申し訳ない。。。適当&横着なdanpapaでした。