質問編集履歴

4

書式の改善

2016/12/13 14:19

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- この問題を解決したいです。現時点では解決不可能な問題である場合は、そのように教えていただけるとありがたいです。
11
+ この問題を解決したいです。
12
12
 
13
13
 
14
14
 

3

書式の改善

2016/12/13 14:18

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -146,9 +146,7 @@
146
146
 
147
147
  Rubyのバージョンを変更してみました。Rubyは全て32bit版をRubyInstllerからダウンロードしました。
148
148
 
149
- 結果:2.0.0だとGTK3をダウンロードしているところでエラーが発生します。2.1.9, 2.2.6, 2.3.3はGTK3をダウンロードして
149
+ 結果:2.0.0だとGTK3をダウンロードしているところでエラーが発生します。2.1.9, 2.2.6, 2.3.3はGTK3をダウンロードして上のプログラムを動かすことはできましたが、ocraを使うと同じエラーが発生します。
150
-
151
- 上のプログラムを動かすことはできましたが、ocraを使うと同じエラーが発生します。
152
150
 
153
151
 
154
152
 

2

エラーメッセージと試したことを修正しました。

2016/12/13 14:06

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 【RubyGTK3】Gio::Icon書き方を教えください。
1
+ 【RubyGTK3】RubyGTK3を使ったプログラムexe化につい
test CHANGED
@@ -2,23 +2,63 @@
2
2
 
3
3
  Rubyでデスクトップマスコット(現時点では透過pngを画面に表示するだけ)の制作を目指しています。
4
4
 
5
- とりあえずできあがったプログラムをocraでexe化しようとすると
5
+ できあがったプログラムをocraでexe化しようとすると
6
6
 
7
- 「`validate_arguments': Gio::Icon.hash: wrong number of arguments (0 for 1)」が発生し
7
+ 「`validate_arguments': Gio::Icon.hash: wrong number of arguments (0 for 1)」が発生します。
8
-
9
- 上手くいかない。
10
8
 
11
9
 
12
10
 
13
- Gio::Icon書き方が分かりませんもし分か方がいらっしゃったら教えていただけるとありがたいです。
11
+ 問題を解決したいです現時点では解決不可能な問題であ場合は、そのように教えていただけるとありがたいです。
14
12
 
15
13
 
16
14
 
17
15
  ###発生している問題・エラーメッセージ
18
16
 
19
- `validate_arguments': Gio::Icon.hash: wrong number of arguments (0 for 1) (ArgumentError)
17
+ ```Ruby
18
+
19
+ === Loading script to check dependencies
20
+
21
+ === Attempting to trigger autoload of Gem::ConfigFile
22
+
23
+ === Attempting to trigger autoload of Gem::DependencyList
24
+
25
+ === Attempting to trigger autoload of Gem::DependencyResolver
26
+
27
+ === Attempting to trigger autoload of Gem::Installer
28
+
29
+ === Attempting to trigger autoload of Gem::Licenses
30
+
31
+ === Attempting to trigger autoload of Gem::RequestSet
32
+
33
+ === Attempting to trigger autoload of Gem::Source
34
+
35
+ === Attempting to trigger autoload of Gem::SourceList
36
+
37
+ === Attempting to trigger autoload of Gem::SpecFetcher
38
+
39
+ C:/Ruby23/lib/ruby/gems/2.3.0/gems/gobject-introspection-3.1.0-x86-mingw32/lib/gobject-introspection/loader.rb:640:in `validate_arguments': Gio::Icon.hash: wrong number of arguments (0 for 1) (ArgumentError)
40
+
41
+ from C:/Ruby23/lib/ruby/gems/2.3.0/gems/gobject-introspection-3.1.0-x86-mingw32/lib/gobject-introspection/loader.rb:589:in `build'
42
+
43
+ from C:/Ruby23/lib/ruby/gems/2.3.0/gems/gobject-introspection-3.1.0-x86-mingw32/lib/gobject-introspection/loader.rb:101:in `block in define_singleton_method'
44
+
45
+ from C:/Ruby23/lib/ruby/gems/2.3.0/gems/ocra-1.3.6/bin/ocra:470:in `block (2 levels) in attempt_load_autoload'
46
+
47
+ from C:/Ruby23/lib/ruby/gems/2.3.0/gems/ocra-1.3.6/bin/ocra:469:in `each'
48
+
49
+ from C:/Ruby23/lib/ruby/gems/2.3.0/gems/ocra-1.3.6/bin/ocra:469:in `block in attempt_load_autoload'
50
+
51
+ from C:/Ruby23/lib/ruby/gems/2.3.0/gems/ocra-1.3.6/bin/ocra:463:in `loop'
52
+
53
+ from C:/Ruby23/lib/ruby/gems/2.3.0/gems/ocra-1.3.6/bin/ocra:463:in `attempt_load_autoload'
54
+
55
+ from C:/Ruby23/lib/ruby/gems/2.3.0/gems/ocra-1.3.6/bin/ocra:715:in `build_exe'
56
+
57
+ from C:/Ruby23/lib/ruby/gems/2.3.0/gems/ocra-1.3.6/bin/ocra:1177:in `block in <top (required)>'
20
58
 
21
59
 
60
+
61
+ ```
22
62
 
23
63
 
24
64
 
@@ -98,7 +138,17 @@
98
138
 
99
139
  結果:undefined method `new_for_string' for Gio::Icon:Module (NoMethodError)が発生した。
100
140
 
141
+ [ここ](https://docs.omniref.com/ruby/gems/gio2/1.1.4/x86-mingw32/symbols/Gio::Icon)を探してみましたが「Gio::Icon.hash」は見つかりませんでした。
101
142
 
143
+ [ここ](http://rubyonwindows.blogspot.jp/2009/05/ocra-compiler-tips-tricks-and-gotchas.html)を参考にプログラムを起動しないでexe化してみました。
144
+
145
+ 結果:exe化はできたが「require : cannnot load such file -- gtk3(LoadError)」が発生して動かない。
146
+
147
+ Rubyのバージョンを変更してみました。Rubyは全て32bit版をRubyInstllerからダウンロードしました。
148
+
149
+ 結果:2.0.0だとGTK3をダウンロードしているところでエラーが発生します。2.1.9, 2.2.6, 2.3.3はGTK3をダウンロードして
150
+
151
+ 上のプログラムを動かすことはできましたが、ocraを使うと同じエラーが発生します。
102
152
 
103
153
 
104
154
 

1

質問の内容をより具体的にしました。

2016/12/13 14:04

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 【RubyGTK3を使ったプログラムのexe化につ
1
+ 【RubyGTK3】Gio::Iconの書き方教えてくださ
test CHANGED
@@ -2,59 +2,103 @@
2
2
 
3
3
  Rubyでデスクトップマスコット(現時点では透過pngを画面に表示するだけ)の制作を目指しています。
4
4
 
5
- 実現したいこはWidnowsRubyとgtk3を使てつくったプログラムをocraでexe化するということです。
5
+ りあえずきあがったプログラムをocraでexe化しようとすると
6
+
7
+ 「`validate_arguments': Gio::Icon.hash: wrong number of arguments (0 for 1)」が発生して
8
+
9
+ 上手くいかない。
10
+
11
+
12
+
13
+ Gio::Iconの書き方が分かりません。もし分かる方がいらっしゃったら教えていただけるとありがたいです。
6
14
 
7
15
 
8
16
 
9
17
  ###発生している問題・エラーメッセージ
10
18
 
11
- 途中で`validate_arguments': Gio::Icon.hash: wrong number of arguments (0 for 1)というものが出て
19
+ `validate_arguments': Gio::Icon.hash: wrong number of arguments (0 for 1) (ArgumentError)
12
20
 
13
- 上手くいかない。
21
+
14
22
 
15
23
 
16
24
 
17
25
  ###該当のソースコード
18
26
 
27
+ ```Ruby
28
+
19
29
  require"gtk3"
30
+
31
+ =begin
32
+
33
+ これは背景が透明なウィンドウを表示して
34
+
35
+ そこに画像を表示するプログラムです
36
+
37
+ バツボタンが表示されないので、下のアイコンから閉じてください。
38
+
39
+ 動かすのに必要なもの
40
+
41
+ ・Ruby
42
+
43
+ ・gtk3
44
+
45
+ ・image.pngという名前の画像(6.のファイル名を変更するなら名前は何でもよい。)
46
+
47
+ =end
20
48
 
21
49
 
22
50
 
23
- window = Gtk::Window.new
51
+ window = Gtk::Window.new #1.ウィンドウを作ります。
24
52
 
25
53
 
26
54
 
27
- window.signal_connect("destroy"){Gtk.main_quit}
28
55
 
29
- window.decorated = false
30
56
 
31
- window.resizable = false
32
-
33
- window.keep_above = true
34
-
35
- color = Gdk::RGBA::new(0, 0, 0, 0)
36
-
37
- window.override_background_color(0, color)
57
+ window.signal_connect("destroy"){Gtk.main_quit} #2.ウィンドウがdestroyされたら終了。
38
58
 
39
59
 
40
60
 
41
- image = Gtk::Image.new(:file => "image.png")
61
+ window.decorated = false #3.ウィンドウの枠を消します。trueにすると表示されます。
42
-
43
- window.add(image)
44
62
 
45
63
 
46
64
 
47
- window.show_all
65
+ window.keep_above = true #4.ウィンドウを常に最前面に表示するようにします。
48
66
 
49
67
 
50
68
 
69
+ color = Gdk::RGBA::new(0, 0, 0, 0) #5.色を決めます。数値は0 ~ 1で設定します。数値の順番はRGBAでAが0なら他は何でもよいです。
70
+
71
+
72
+
73
+ window.override_background_color(0, color) #6.ウィンドウの背景色を変更します。0にしないと背景色が変わりません。
74
+
75
+
76
+
77
+ image = Gtk::Image.new(:file => "image.png") #7.画像を読み込みます。
78
+
79
+
80
+
81
+ window.add(image) #8.ウィンドウに加えます。
82
+
83
+
84
+
85
+ window.show_all #9.ウィンドウに載っているものをすべて表示します。
86
+
87
+
88
+
89
+ Gtk.main #10.ループ
90
+
51
- Gtk.main
91
+ ```
52
92
 
53
93
 
54
94
 
55
95
  ###試したこと
56
96
 
97
+ [ここ](http://www.rubydoc.info/gems/gtk3/Gtk/Image)に書いてあることを参考にして書いてみました。
98
+
57
- 解決方法を調べた。
99
+ 結果:undefined method `new_for_string' for Gio::Icon:Module (NoMethodError)が発生した。
100
+
101
+
58
102
 
59
103
 
60
104