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
Sora Arakawa
May 09, 2020
Programming
0
1.7k
GUIライブラリ FLTK 使ってみた
第4回バーチャル学生LT On YouTube Live
Sora Arakawa
May 09, 2020
Tweet
Share
More Decks by Sora Arakawa
See All by Sora Arakawa
arkw vs. サーバ移転 -2024年1月版-
arkw
0
35
なれる! 村上さん Misskeyサーバ構築入門
arkw
0
190
Cloudflare Tunnelで自宅サーバを公開してみた
arkw
0
710
5分でわかる!? 7セグメントLED制御
arkw
0
41
ヤフオクで原付買った話
arkw
0
160
パソコンの消費電力と省エネ化のおはなし
arkw
0
240
"成果物"を作ろう(提案)
arkw
0
210
Python(+α)でスマートプラグを制御してみた
arkw
0
1k
学情絶叫ウェブシステムGX
arkw
0
120
Other Decks in Programming
See All in Programming
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
0
820
Milestoner
bkuhlmann
1
410
Elm 0.19.0 Changes
bkuhlmann
0
490
Elm Form Validation
bkuhlmann
0
510
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
見た目から始める生産性向上
ikumatadokoro
7
830
[技育CAMPアカデミア]アイディアを形に!【超入門】スマホアプリ開発〜リリースまでの流れをご紹介
teamlab
PRO
0
360
Fragment Composition of GraphQL
quramy
4
750
MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた
ymd65536
1
300
Git Rebase
bkuhlmann
11
1.6k
VSCodeでのDatabricks開発もお勧めしたい/I would also recommend Databricks development with VSCode.
kazumain
0
250
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
1k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
A better future with KSS
kneath
231
16k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
Optimising Largest Contentful Paint
csswizardry
8
2.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
17
6.4k
The Invisible Customer
myddelton
114
12k
Thoughts on Productivity
jonyablonski
58
3.8k
The Brand Is Dead. Long Live the Brand.
mthomps
49
28k
Imperfection Machines: The Place of Print at Facebook
scottboms
260
12k
Writing Fast Ruby
sferik
621
60k
Done Done
chrislema
178
15k
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/ ※ パブリックドメインとします。自由に使って下さい
おしまい