用于Windows GUI的Perl

时间:2012-06-20 14:23:57

标签: windows perl user-interface

我来到这里之前搜索了互联网。我猜每个人的需求都不同。我想要一个Windows GUI程序,它将从数据库中获取信息并在网格中显示它,并在每个记录旁边有一个删除按钮。我还希望它有一个链接,例如,如果点击了记录的ID号,它会打开新的浏览器并导航到与之关联的页面,然后完成表单然后单独提交。

问题是:由于那里有很多模块,哪一个最适合这个?

(Perl Nubie)

3 个答案:

答案 0 :(得分:3)

没有人能真正说出什么是BEST,但 Tk 模块的选项(在您的情况下为DBD::MySQL的后端)可能是Perl中这类事情的最“标准” 。两者的例子都可以在网上找到。

以下是SQL和mySQL和DBD的一些内容:

http://sql-info.de/mysql/examples/Perl-DBI-examples.html

以下是perl TK的一个很好的示例文档:

http://www.ibm.com/developerworks/aix/library/au-perltkmodule/index.html

就打开浏览器而言 - 一个简单的系统命令可以:

my @command = ('start', $url);
system(@command);

^适用于Windows。看起来你想要构建一个相当大的应用程序 - 打开一个浏览器只是它的一小部分 - 毫无疑问,当你按下一个按钮时你会想要执行上面的操作。

最后一部分......向网络上的表单提交数据,这是一个名为“网络抓取”的主题... WWW::Mechanize 是一个可以查看的图书馆 - Google“perl网络抓取工具”,你受到约束获得更好的例子。

我发现了一点 - 它看起来对你有用:

http://www.stratos.me/2009/05/writing-a-simple-web-crawler-in-perl/

答案 1 :(得分:3)

给出一个(令人讨厌的)前提条件,约25行HTML

<html>
 <head>
  <hta:application id="demo" scroll="No"></hta>
  <title>Demo</title>
  <script language = "PerlScript"
          src      = "demo.pl"
          type     = "text/perlscript"
  ></script>
 </head>
 <body onload="DoOnLoad()" onunload="DoOnUnLoad()">
  <object classid = "clsid:67397AA3-7FB1-11D0-B148-00A0C922E820"
          id      = "id_oDC"
          style   = "position:relative;width:1px;height:1px"
  ></object>
  <object classid = "clsid:CDE57A43-8B86-11D0-B3C6-00A0C90AEA82"
          id      = "id_oDG"
          style   = "position:relative;width:100%;height:95%"
  ></object>
 </body>
</html>

和ca. 40行Perl:

use strict;
use warnings;

use Win32::OLE qw( in );
use Win32::OLE::Const 'Microsoft ActiveX Data Objects';
use vars qw( $window );

my $oAdoDC;
my $oAdoDG;

sub DoOnLoad {
  my $owda                    = $window->document->all;
  $oAdoDC                     = $owda->id_oDC;
  $oAdoDC->{ConnectionString} = 'DSN=SakilaGent';
  $oAdoDG                     = $owda->id_oDG;
  $oAdoDC->{CursorType}       = adOpenKeyset;
  $oAdoDG->Font->{Name}       = "Arial";
  $oAdoDG->Font->{Size}       = "8";
  $oAdoDG->HeadFont->{Name}   = "Arial";
  $oAdoDG->HeadFont->{Size}   = "8";
  $oAdoDC->{RecordSource}     = "select * from customer";
  $oAdoDG->{Caption}          = $oAdoDC->{RecordSource};
  $oAdoDC->Refresh();
  $oAdoDG->{DataSource}       = $oAdoDC;
}

sub DoOnUnLoad {
  $oAdoDG->{ DataSource }->Close();
  $oAdoDC->{ Recordset }->Close();
  $oAdoDG = undef;
  $oAdoDC = undef;
}

将为您提供灵活的'显示/编辑ADO'数据网格可访问的每个数据库中的每个记录集:

ADO Grid

免费。熟悉HTML(但不是Tk或Wx)和ADO / Access / Excel(但不是DBI)的人可以轻松/有效地构建一个很好的数据库GUI。前提条件(即缺点)是:即使是部署计算机也需要具有“Microsoft DataGrid Control 6.0(OLEDB)”(也有一个普通的表格,分层和灵活的分层网格控件;也许可以使用更现代的控件另外)安装在开发/设计时启用模式下。

答案 2 :(得分:2)

我建议使用:

由于您使用的是Windows,最好的办法是安装Strawberry Perl,其中包括SQLite和Mechanize。安装Wx或Tk是一个额外的步骤,但您应该能够从其他人那里找到教程。您可能还想查看Padre, the Perl IDE这是一个Perl编辑器/开发环境(它也恰好使用Wx)。