できた。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch(9.0) 2018-06-27
- Mono 5.16.0
- MonoDevelop 7.6 build 711
- Eto.Forms 2.4.1 拡張機能, NuGetパッケージ
- .NET Core 2.2, MonoDevelop参照方法
前回まで
GtkSourceViewがインストールされているように見えたが、開発版のlibgtksourceview-3.0-dev
は未インストールだった。
libgtksourceview-3.0-dev
をインストールすることで、Glade
から参照できるようになった。
手順
Glade
を起動する。(メインメニュー→プログラミング
→Glade
)
1. 配置
トップレベル
.ウインドウ
をDnDする(GtkWindow
)
コンテナー
.ウインドウ
をDnDする(GtkBox
)
アイテムの数
=4
GtkSourceView
にある4つを適当にぶちこんでいくGtkSourceView
GtkSourceMap
GtkSourceStyleSchemeChooserWidget
GtkSourceStyleSchemeChooserButton
2. データ設定
2-1. GtkTextBuffer作成
- 画面右上で
GtkSourceMap
をクリックする - 画面右下で
全般
タグのうちテキストビューの属性
→バッファー
のアイコンをクリックする
- ダイアログの
新規
ボタン押下する
textbuffer1
(GtkTextBuffer
)が作成される
2-2. 初期値の代入
- 画面右上で
textbuffer1
をクリックする - 画面右下で
全般
タグのうちラベル
のアイコンをクリクする
- ダイアログの
文字列
の中に任意のテキストを入力する
OK
ボタンを押下する
2-3. GtkSourceViewと紐付ける
- 画面右上で
GtkSourceView
をクリックする - 画面右下で
全般
タグのうちテキストビューの属性
→バッファー
のアイコンをクリックする
- ダイアログの
オブジェクト
にあるtextbuffer1
ラジオボタンをクリックする
OK
ボタンを押下するGtkTextBuffer作成
のバッファに設定したテキストがビューアに表示される
3. 実行
ファイル
ファイル保存したものが以下。
HelloGtkSourceView.glade
<?xml version="1.0" encoding="UTF-8"?> <!-- Generated with glade 3.20.0 --> <interface> <requires lib="gtk+" version="3.20"/> <requires lib="gtksourceview" version="3.0"/> <object class="GtkTextBuffer" id="textbuffer1"> <property name="text" translatable="yes">任意のテキスト。 GtkSourceViewに表示する。 Gtk#でも使いたい。 #include <stdio.h> </property> </object> <object class="GtkWindow"> <property name="can_focus">False</property> <child> <object class="GtkBox"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="orientation">vertical</property> <child> <object class="GtkSourceView"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="left_margin">2</property> <property name="right_margin">2</property> <property name="buffer">textbuffer1</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> <child> <object class="GtkSourceMap"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="editable">False</property> <property name="left_margin">2</property> <property name="right_margin">2</property> <property name="buffer">textbuffer1</property> <property name="monospace">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkSourceStyleSchemeChooserWidget"> <property name="visible">True</property> <property name="can_focus">False</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">2</property> </packing> </child> <child> <object class="GtkSourceStyleSchemeChooserButton"> <property name="label" translatable="yes">クラシック</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> <property name="position">3</property> </packing> </child> </object> </child> </object> </interface>
所感
gladeファイルはC++でなら使えると思われる。使ったことが無いため詳細は知らない。
C#での使用法については情報がない。MonoDevelopのNuGetパッケージ追加でGtkSourceView
と検索しても見つけられない。