0
0

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.

Gtk3アプリ ファイルダイアログを利用する

Last updated at Posted at 2021-09-29

###ファイルダイアログを利用する

#####ダイアログ系は表示の仕方には複数あります。

####プログラムで表示するタイプ

右上と左上にボタンがOkボタンとキャンセルボタンが表示されます。

Screenshot from 2021-09-29 13-02-34.png

ダイアログ関数宣言時にボタンのタイプと動作を指定します

Gtk.FileChooserAction.Open
Gtk.Stock.Cancel
Gtk.ResponseType.Cancel
Gtk.Stock.Open, Gtk.ResponseType.Ok
Gtk.FileChooserDialog chooseDialog1 = new FileChooserDialog ("Open file", this,  Gtk.FileChooserAction.Open, Gtk.Stock.Cancel, Gtk.ResponseType.Cancel, Gtk.Stock.Open, Gtk.ResponseType.Ok);
chooseDialog1.LocalOnly = true;
int response = chooseDialog1.Run ();

//OKボタンが押された時の動作
if ((Gtk.ResponseType) response == Gtk.ResponseType.Ok)
{
	Console.WriteLine(chooseDialog1.Filename);
	chooseDialog1.Destroy ();
}
//Cancelボタンが押された時の動作
if ((Gtk.ResponseType) response == Gtk.ResponseType.Cancel)
{
	chooseDialog1.Destroy ();
}

####Glade上に配置して利用するタイプ

ファイルダイアログの右下にボタンが表示されます。
Screenshot from 2021-09-29 13-36-36.png
GUI上で細かい設定ができます。
Screenshot from 2021-09-29 13-12-13.png

#####ファイルダイアログにGtk.Buttonを配置する
ファイルダイアログにGtk.Buttonを配置します。
配置後ストックボタンのところをクリックし、プリセットのデザインを利用すると便利です。
Screenshot from 2021-09-29 13-14-17.png

#####Gtk.Buttonにイベントハンドラーも設定する
Gtk.Buttonにシグナルを記入する必要があります。
Screenshot from 2021-09-29 13-17-10.png
#####C#側にもコールバック関数を書く

[UI] private readonly Gtk.FileChooserDialog openDialog1 = null;

openDialog1.Show();

openDialog1.Hide();

private void on_okBtn_clicked(object sender , EventArgs e){

}

イベント文を自動で生成するツール

ダイアログにも対応しています。

Gtk3アプリ GtkMenuを利用するへ続く

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?