0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

gtkを用いたGUIテストアプリケーション作成環境について

Last updated at Posted at 2021-12-16

はじめに

 gtkを使うのは、修論ぶりなので今から約20年以上前のことになります(当時、修士論文のためにgtkとtcl/tkを使い分けて、特定画像の特徴抽出プログラムを作成しました。。。。)。gtkを使っている間に先日見たNetflixの「ボクたちはみんな大人になれなかった」のラストシーンのように色々な思い出がフラッシュバックしました。笑
 今回は、Mac、Jetson、Kriaで動作するためのGUI作成のために、monoDevelopなどいくつか検討した結果、20年以上の時を経て再び元の場所へ帰ってきました。

要件

 テスト用GUIアプリケーションを作成したい。ただし、要件は以下のとおり。

  • Mac、Jetson及びKriaで同一の開発環境が欲しい
  • 直接ハードウェアのレジスタを触る可能性がある
  • CUDA Cを使用したい
  • OpenCV(C++又はPython)を使用したい

結果

 上記の条件を満たそうとすると、「monoDevelopか」、「GTKを直接操作するか」、「Qtか」ということになり、結局GTKで開発することに決めました。以下、その理由です。

  • Qt:良さそうなのはわかるが、お金の匂いがプンプンして、あとから面倒になりそう。
  • monoDevelop:monoDevelopは良い。結構悩みました。
  • C#ベース開発でき、GUIもセンスが良く、間違いなくGTKよりも開発スピードが上がると思う
  • C#からC又はC++を呼ぶ場合、ライブラリ化が基本になってしまう
  • C#、C++、Cが混在した場合のコンパイルシステムがよくわからない(勉強不足)
  • monoDevelopがcやc++のコンパイルをサポートしたという記載があるが、資料が少ない
  • オープンソースでcやc++を扱えるようだが、その構築で困りたくない(年齢からくるやる気の問題)
  • GTK:よく知っている。扱いにくいこともよく知っている。
  • C/C++でのGUI開発のため、他の要件と親和性が高い
  • コンパイルシステム(make)を書くのが簡単
  • 当時から資料が多く、困ることはあっても、止まることはない(経験談)

 このような結論になってしまいましたが、もし、コメントがあればいただきたいです。本心としては、GTKを直接扱いたくなかった。。。

開発環境構築

  • gtkラッパーであるgtkmmをインストールする(嵌まるのが嫌なのでgtkmm4.0をソースコードからコンパイルする方法は避けた。)。
gtk3.0
sudo apt-get install libgtk-3-dev
gtkmm3.0
sudo apt-get install libgtkmm-3.0-dev

※なお、Jetson(ubuntu)環境でgtkmm-3.0を使用してコンパイルを行うと以下のようなエラーが出ることがある

解決方法については、[参考](# 参考)のとおり、object.hに make_managed のテンプレートクラスを追加する。

error-1
"Unable to resolve the identifier make_managed"
  • gitをインストールする
git
sudo apt-get git

 なお、2021年8月13日からパスワード認証を廃止し、パーソナルアクセストークンで認証を行う必要があるので注意する。また、git clone 時には、githubでは、事前に設定した http or ssh のどちらか一方でしかアクセスできないので注意が必要です。

開発環境

スクリーンキャプチャ

Screenshot from 2022-01-01 07-37-09.png

参考

お手軽Linux(Ubuntu) GUIアプリ開発 入門
Programming with gtkmm 3
stackoverflow:Why do I get the compile error, "make_managed" is not a member of 'Gtk'?
GitHubでhttpsのパスワード認証が廃止された。Please use a personal access token instead.
Creating a personal access token

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?