+ -
当前位置:首页 → 问答吧 → perl 安装Gtk2::GladeXML后不能使用

perl 安装Gtk2::GladeXML后不能使用

时间:2010-12-12

来源:互联网

  1. #!/usr/bin/perl
  2. use Glib qw/TRUE FALSE/; #导入 Glib 模块
  3. use Gtk2 '-init'; #导入Gtk2模块。-init 参数相当于调用了C库中的gtk_init函数。它会作一些必须的初始化工作.
  4. use Gtk2::GladeXML;

  5. my $gladexml = Gtk2::GladeXML->new("1.glade");  #读入glade生成的xml文件
  6. $gladexml->signal_autoconnect_from_package('main');    #导入默认包中的信号
  7. my $window = $gladexml->get_widget('window1');    #得到window和button还有label三个组件
  8. my $stop = $gladexml->get_widget('stop');  
  9. my $start = $gladexml->get_widget('start');

  10. #以下是对信号的处理

  11. $start->signal_connect( clicked => \&button_clicked);
  12. sub button_clicked{
  13.   Win32::MsgBox("Hello Gtk2", 0, "Hello");
  14. }

  15. $stop-> signal_connect( clicked => sub{Gtk2->main_quit;}); #按下button时,会发出clicked的信号,现在的作用是退出.
  16. sub gtk_main_quit { Gtk2->main_quit();} #窗口在关闭时退出Gtk2的主循环。如果不加入这个回调函数,在窗口关闭后程序不会自动退出。

  17. $window->show_all(); #显示窗口
  18. Gtk2->main();    #进入Gtk2的事件
  19. exit 0;   
复制代码


运行后
下载 (23.01 KB)
2010-12-12 13:47
   知道的多帮忙下

作者: mitmax   发布时间: 2010-12-12

activeperl 5.10 ?

作者: 黑色阳光_cu   发布时间: 2010-12-12

得贴出 glade吧
下面这个 至少 运行 stop时没问题
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
  3. <!--Generated with glade3 3.4.3 on Sun Dec 12 16:07:52 2010 -->
  4. <glade-interface>
  5.   <widget class="GtkWindow" id="window1">
  6.     <signal name="destroy" handler="gtk_main_quit"/>
  7.     <signal name="delete_event" handler="gtk_main_quit"/>
  8.     <child>
  9.       <widget class="GtkFixed" id="fixed1">
  10.         <property name="visible">True</property>
  11.         <child>
  12.           <widget class="GtkButton" id="stop">
  13.             <property name="visible">True</property>
  14.             <property name="can_focus">True</property>
  15.             <property name="receives_default">True</property>
  16.             <property name="label" translatable="yes">stop
  17. </property>
  18.             <property name="response_id">0</property>
  19.           </widget>
  20.           <packing>
  21.             <property name="x">60</property>
  22.             <property name="y">80</property>
  23.           </packing>
  24.         </child>
  25.         <child>
  26.           <widget class="GtkButton" id="start">
  27.             <property name="visible">True</property>
  28.             <property name="can_focus">True</property>
  29.             <property name="receives_default">True</property>
  30.             <property name="label" translatable="yes">start
  31. </property>
  32.             <property name="response_id">0</property>
  33.           </widget>
  34.           <packing>
  35.             <property name="x">245</property>
  36.             <property name="y">80</property>
  37.           </packing>
  38.         </child>
  39.       </widget>
  40.     </child>
  41.   </widget>
  42. </glade-interface>
复制代码

作者: perlw01f   发布时间: 2010-12-12

加上 use Win32 ();
start按钮也好使了

作者: perlw01f   发布时间: 2010-12-12