|
From: S. K. <ch...@ll...> - 2013-06-06 22:08:13
|
北川です。
問題のエラーが起きるケースが一つ見つかりました。以下のようなRubyプログラムで、
Gtk::Notebookに追加したページのラベルにアンダーバーが入っていると、なぜか
ウィンドウをリサイズした時にプログラムが落ちます。(Windows 7上のruby 2.0/1.9.3)
require "gtk3"
window = Gtk::Window.new
window.signal_connect('destroy') do
Gtk.main_quit
end
notebook = Gtk::Notebook.new
notebook.append_page(Gtk::Button.new(label:'_Button'),#こっちは影響なし
Gtk::Label.new('_Tab', true))#こっちは影響あり
window.add(notebook)
window.show_all
Gtk.main
同じプログラムをVirtualBox上のUbuntu 12.04(ruby1.9.3)で実行すると、
Gtk::Notebookのページのラベルに含まれるアンダーバーはGUIには反映されず、
エラーは出ませんでした。
gtk3/sample/gtk-demoのプログラムでも少し試してみましたが、main.rbでは
Gtk::Notebookのページのラベルに含まれるアンダーバーを削除した時に
エラーが出にくくなり(ウィンドウの横幅を縮めていくとなぜか出る)、
(gtk3で動くように一部コメントアウトand修正した)appwindow.rbでは
メニュー項目の表示文字列のアンダーバーを削除した時にエラーが出なくなりま
した。(Windows)
ただしGUIのラベル文字列にアンダーバーが含まれていないサンプルプログラム
でもエラーが起きる時があって、はっきりとした原因はわからないですね……
>英語ですが、もしイベントループに興味があったら、参考までに。。。
>「Customizing the main loop iteration」のところに図入りで説
>明があります。
> https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html#glib-The-Main-Event-Loop.description
ありがとうございます。今は理解するのは難しそうですが、時間があれば勉強して
みたい内容ですね。
|