Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GUIライブラリ FLTK 使ってみた
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Sora Arakawa
May 09, 2020
Programming
3.8k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GUIライブラリ FLTK 使ってみた
第4回バーチャル学生LT On YouTube Live
Sora Arakawa
May 09, 2020
More Decks by Sora Arakawa
See All by Sora Arakawa
OSもどきOS
arkw
0
450
オープンソース電車運転ゲーム「もっと! 地下鉄 大名古屋」の紹介
arkw
0
21
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
260
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
680
お前も同人作家にならないか? 技術系同人誌制作入門
arkw
3
94
非root化Androidスマホでも動く仮想マシンアプリを試してみた
arkw
0
1.3k
技術島の指定ツール「LaTeX」で同人誌を作ろう
arkw
2
430
ポスト・パソコン時代のジャンク遊び スマートデバイス編
arkw
0
230
ジャンカーよ、車も買え ~10分でわかる!? 中古車選び入門~
arkw
2
220
Other Decks in Programming
See All in Programming
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
170
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.9k
今さら聞けないCancellationToken
htkym
0
220
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
590
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
140
Stage 3 Decorators でできること / できないこと / TSKaigi 2026
susisu
1
1.5k
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
320
RTSPクライアントを自作してみた話
simotin13
0
490
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
830
Oxcを導入して開発体験が向上した話
yug1224
4
290
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.2k
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
290
Featured
See All Featured
KATA
mclloyd
PRO
35
15k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
550
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
320
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Google's AI Overviews - The New Search
badams
0
1k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
260
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
Amusing Abliteration
ianozsvald
1
200
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
Transcript
GUIライブラリ FLTK 使ってみた Sora Arakawa (arkw) 第4回バーチャル学生LT on YouTube Live
2020/05/09
はじめに ・ 5分しか無いので急ぎます ・ このスライドは42枚あります ・ SpeakersDeckにスライド上げるので 後でゆっくり見て下さい
自己紹介 Sora Arakawa (arkw) ・ 静岡大学 情報学部 行動情報学科1年 └ 今は在宅授業です(そろそろ通学開始?)
・ 愛知県岡崎市在住 ・ conflict歌えます ・ 最近ウェブサイトをリニューアルしました └ https://arkw.net/
自己紹介 ・ 2019/06/09 第25回学生エンジニアLT大会@名古屋
【悲報】相変わらず理系の屑 英語 169点 / 200 地理B 83点 / 100
本 題
目次 1. FLTKについて 2. FLUIDについて 3. 実践
目次 1. FLTKについて 2. FLUIDについて 3. 実践
FLTKとは? ・ クロスプラットフォームのGUIライブラリ(主にLinuxだけど) ・ QtやwxWidgetsより軽量 ・ 日本語が使える ・ C++での利用に適している(Python、Ruby、Lua向けバインディングもある) ・
「フルティック」と読む フルテカ
選んだ理由 ・ Tiny Core Linuxで動く └ ISOファイル容量18MBの超軽量Linux └ FLTKが標準GUIライブラリのため他のものより楽 ・
C++が使える └ 競プロやってるので一応書けます
目次 1. FLTKについて 2. FLUIDについて 3. 実践
FLUIDとは? ・ FLTK用の開発ツール(IDEほど高機能ではない) ・ UIを設計できる ・ C++用のヘッダーとソースを自動生成 ・ エディタ機能は貧弱 ・
ビルド機能は無い(端末使え) ・ UIが英語(勉強しろ) ※ FLUID無しでもFLTKの開発はできます
FLUIDとは?
目次 1. FLTKについて 2. FLUIDについて 3. 実践
今回の環境 ・ Ubuntu 16.04.6 LTS (32ビット) ・ g++ ・ FLTK
1.3 ・ FLUID ※5分しか無いので実演はありません
インストール sudo apt-get install libfltk1.3 libfltk1.3-dev ・ インストール容量は70MBくらい
今回の目標 ・ FLUIDでウインドウを設計する。 └ PNG形式の画像 └ ボタン(クリックでダイアログを表示) ・ FLUIDで生成したC++コードを端末でビルドする。 ・
完成した実行ファイルをUbuntuとTiny Coreで実行する。
今回の目標 ・ アプリ名は「hello」 以下、ファイル名にはこの名前を使用 例: hello.fl、hello.cxx、hello.h など
FLUIDの起動
(1) プロジェクトの作成 ・ プロジェクトは *.fl 形式のファイルで保存できる 「File」→「Save As…」で保存 ・ 同じ位置にコードや実行ファイルが生成されるので、
空のフォルダへの保存を推奨 ・ ファイルパスに日本語は入れない(海外製ツールなので一応)
FLUIDの構造 関数 (Function) ウインドウ (Window) ボックス、ボタン、メニューバーなど
(2) 関数の作成 ・ ウインドウより先に関数 「New」→「Code」→「Function/Method…」 ・ 「Name (args)」を空白にするとmain関数になる
(3) ウインドウの作成 「New」→「Group」→「Window…」 ← こうなっていればOK
(3) ウインドウの作成 「Double_Window」をダブルクリックしてプロパティを表示 「Label」 タイトルバー 「X」 初期表示X座標 「Y」 初期表示Y座標 「Width」
画面幅 「Height」 画面高さ
(4) 画像の表示
(4) 画像の表示 ・ 「Box」を使う └ 文章や画像を表示するパーツ 「New」→「Other」→「Box…」
(4) 画像の表示 「Box」をダブルクリックしてプロパティを表示 「Image」 背景画像 「X」 X座標 「Y」 Y座標 「Width」
幅 「Height」 高さ
(4) 画像の表示 画像はRGB値として C++コードに直接書かれる あたまおかしい…
(5) ボタンの表示 ・ 「Button」を使う 「New」→「Buttons」→「Button…」 ・ プロパティはWindow、Boxと同じように入力
(5) ボタンの表示 ・ C++コードの入力 プロパティの「C++」タブをクリック 「Callback」欄にC++コードを直接入力 (クラスは自動生成)
(5) ボタンの表示 ・ 何書けば良いの? ドキュメント読め(英語) https://www.fltk.org/doc-1.3/modules.html
C++コードの生成 ・ 「File」→「Write Code…」 ・ hello.cxx と hello.h が生成される
ビルドの前に… ・ hello.h を開く ・ 必要なモジュールの #include を書き足す └ 各関数の依存モジュールはドキュメントに書いてあります
└ 今回 (fl_message) は fl_ask.H が必要 #include <FL/fl_ask.H> // これを書き足す
ビルドの前に… ・ hello.h を開く ・ 必要なモジュールの #include を書き足す └ ドキュメントの関数説明に書いてあります
└ 今回 (fl_message) は fl_ask.H が必要 ・ この作業は「Write Code…」する度に必要 めんどい!!!
コンパイル ・ 予めcdコマンドでプロジェクトフォルダに移動 fltk-config --compile hello.cxx → 実行ファイル「hello」が生成される
動作例(Ubuntu)
動作例(Ubuntu)
動作例(Tiny Core Linux)
動作例(Tiny Core Linux)
まとめ ・ Linux推奨だけどWindowsでも使える ・ 32ビット版OS推奨 ・ 困ったらドキュメントを読む ・ 入門したばかりなのでFLTKわからない ・
FLUIDの仕様が割とクソ ・ FLUIDの謎挙動に注意
各種データ配布 ・ 「hello」ソースコード、バイナリ ・ 「hello2」ソースコード、バイナリ(日本語テスト) のダウンロード → http://arkw.client.jp/ ※ パブリックドメインとします。自由に使って下さい
おしまい