Gtk2-Perl 的安装
Gtk2-perl 编程
1. ActivePerl 装5.8.x的版本,要不装这些东西的时候会报错
ppm install failed: The PPD does not provide code to install for this platform
从控制面板里删除了5.10.x,装了个5.8.x的
2. Gtk2-Perl 需要 Gtk runtime environment 来运行。它可以从下面的网址下载得到:
http://gimp-win.sourceforge.net/stable.html
安装Glade也有带Gtk+的版本
3. 安装Gtk2-perl
ppm install http://gtk2-perl.sourceforge.net/win32/ppm/ExtUtils-Depends.ppd
ppm install http://gtk2-perl.sourceforge.net/win32/ppm/ExtUtils-PkgConfig.ppd
ppm install http://gtk2-perl.sourceforge.net/win32/ppm/Glib-1080.ppd
ppm install http://gtk2-perl.sourceforge.net/win32/ppm/Gtk2-1080.ppd
这些东西也可以下载下来装,路径改一下就行
下载
还有一个也要装
ppm install http://gtk2-perl.sourceforge.net/win32/ppm/Gtk2-GladeXML.ppd
这个是导入glade生成的文件用的,一开始没装,要用的时候不知道就在这里,折腾了好长时间,郁闷不已
4. 运行一个程序,报错。解决如下两个问题后,成功HelloWorld!
在 windows 上运行时可能会遇到这样一些问题:
1. 如果提示不能导入 Glib.dll,请确认 Gtk 运行环境的 bin 目录是系统环境变量 PATH 中,没有的话要加到这个环境变量中。
2. 如果出现找不到 signal_connect 方法的错误,需要修改 Gtk2.pm 文件,在里面加上一句(加到文件开头):
push @Gtk2::Object::ISA, 'Glib::Object';
错误 1 可能的提示如下:
Can't load 'C:/Perl/site/lib/auto/Glib/Glib.dll' for module Glib: load_file:找不到指定的模块。 at C:/Perl/lib/DynaLoader.pm line 230.
at C:/Perl/site/lib/Gtk2.pm line 30
错误 2 可能的提示如下:
Can't locate object method "signal_connect" via package "Gtk2::Window" at helloworld.pl line 9.
Perl中使用Glade3来进行的Gtk2的GUI图形用户界面开发
新建文件时,选择Project File format为Libglade。选择GtkBuilder的话,使用Gtk2-GladeXML读入时会报错,
(perl.exe:2956): libglade-WARNING **: Expected <glade-interface>. Got <interfac
e>.
(perl.exe:2956): libglade-WARNING **: did not finish in PARSER_FINISH state
abcdefg at glade.pl line 6.
可能是相应的版本不对应的问题,也可能是Gtkbuilder不是用GladeXML读入,让上面的这篇文章引沟里了,反正现在也不知道是什么原因。总之两个格式都试一下,在这里浪费了大半晚上的时间google.也没出个结果。