亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2951 | 回復(fù): 4
打印 上一主題 下一主題

用perl以來,第一個gtk的程序··· [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-07-25 01:19 |只看該作者 |倒序?yàn)g覽
發(fā)現(xiàn)用perl寫gtk挺容易上手的,第一次用perl寫gtk····當(dāng)入門寫的一個小東西·····呵呵···寫的不地道···呵呵··
  1. use strict;
  2. use Gtk2 '-init';
  3. use Glib qw(TRUE FALSE);
  4. use Encode qw(decode);
  5. my $encoding = "gbk";
  6. my $win=Gtk2::Window->new('toplevel');
  7. $win->set_position('center_always');
  8. $win->set_title(decode($encoding, '簡單計(jì)算器' ));
  9. $win->set_size_request(300,300);
  10. my @btns;#按鈕數(shù)組
  11. #create button
  12. for (0..9,'+','-','CE','=')   
  13. {
  14.         push @btns,Gtk2::Button->new($_);
  15. }
  16. #create label
  17. my $label=Gtk2::Label->new('0');
  18. $label->set_justify("right");
  19. #boxes and table
  20. my $vbox=Gtk2::VBox->new(FALSE,4);
  21. my $hbox=Gtk2::HBox->new(FALSE,4);
  22. my $table=Gtk2::Table->new(4,3,FALSE);
  23. #pack in hbox
  24. for my $btn (@btns)
  25. {
  26.         my $btn_label=$btn->get_label();
  27.         $hbox->add($btn) if $btn_label eq 'CE' or $btn_label eq '=';
  28. }
  29. #pack in table
  30. my ($i,$j)=(0,0);
  31. for my $num_btn (@btns)
  32. {
  33.         my $btn_label=$num_btn->get_label();
  34.         if($btn_label=~/^[0-9+-]$/)
  35.         {
  36.                 while($i<=2)#控制行
  37.                 {
  38.                         while($j<4)#控制列
  39.                         {
  40.                                 $table->attach_defaults($num_btn,$i, $i+1, $j, $j+1);
  41.                                 last;
  42.                         }
  43.                         $i>=2 ?($i=0,++$j) : (++$i);
  44.                         last;
  45.                 }
  46.         }
  47. }
  48. #pack label,table,hbox in vbox
  49. $vbox->pack_start($label,TRUE,TRUE,0);
  50. $vbox->pack_start($table,TRUE,TRUE,0);
  51. $vbox->pack_start($hbox,TRUE,TRUE,0);
  52. my $text='';#存放計(jì)算式
  53. #設(shè)置callback
  54. for (@btns)
  55. {
  56.         my $btn_lb=$_->get_label();
  57.         if($btn_lb=~/^[0-9+-]$/)
  58.         {
  59.                 $_->signal_connect(clicked =>\&btn_clicked);
  60.         }
  61.         elsif($btn_lb=~/^CE$/)
  62.         {
  63.                 $_->signal_connect(clicked =>\&btn_CE);
  64.         }
  65.         else
  66.         {
  67.                 $_->signal_connect(clicked =>\&btn_equal);
  68.         }
  69. }
  70. $win->signal_connect('delete_event' => sub { Gtk2->main_quit; });
  71. #pack vbox in window
  72. $win->add($vbox);
  73. $win->show_all();
  74. Gtk2->main();

  75. sub btn_clicked
  76. {
  77.         my $btn=shift;
  78.         $text.=$btn->get_label();
  79.         $label->set_text($text);
  80. }

  81. sub btn_CE
  82. {
  83.         my $btn=shift;
  84.         $text='';
  85.         $label->set_text(0);
  86. }

  87. sub btn_equal
  88. {
  89.         my $btn=shift;
  90.         $text=eval($text);
  91.         $text='ERROR' if !defined $text;
  92.         $label->set_text($text);
  93. }
復(fù)制代碼

論壇徽章:
1
辰龍
日期:2014-05-15 19:37:15
2 [報(bào)告]
發(fā)表于 2010-07-25 21:33 |只看該作者
加油,好好加油

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2010-07-26 11:15 |只看該作者
不知道樓主能不能回答一下我的問題:
http://72891.cn/thread-1754558-1-1.html

論壇徽章:
1
獅子座
日期:2013-12-16 16:09:24
4 [報(bào)告]
發(fā)表于 2010-07-26 13:32 |只看該作者
都,2010年了
還脫離圖形化界面編制工具,開發(fā)GUI就是杯具。。。。。。

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2010-07-26 14:28 |只看該作者
回復(fù) 2# iakuf

小弟是參考你的文章哇··受益匪淺·
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP