perl - 有没有像 Perl 的 PySimpleGUI 这样的工具?

标签 perl user-interface sh

我正在寻找一个简单的 Perl GUI 工具 PySimpleGUI . PySimpleGUI 声称是处理此类事情的不错选择:

  • 将简单 GUI 的便利性添加到 CLI Perl 脚本中。
  • 分享一些我从终端运行的很酷的 Perl 工具,但为(内部)用户提供了一个简单的 GUI
  • 与 friend 或家人分享我的 Perl 程序(他们对 CLI 不太习惯)
  • 在系统托盘中运行程序(可能)
  • 寻找“受支持”并不断开发和改进的 GUI 包
  • 好的文档和示例

  • 这些是我的要求,因为 PySimpleGUI 提供了所有这些,所以我尝试了一个项目。我喜欢它。这促使我尝试为 寻找类似的东西。 Perl .

    我正在使用 KDE 在 Linux 上运行 perl 5,版本 30。

    到目前为止,我只发现:
  • saiftynet/GUIDeFATE:来自文本编辑器的 GUI 设计 https://github.com/saiftynet/GUIDeFATE

  • 我无法运行示例,并且提供的文档不符合我的要求。 (我会在一个单独的问题中询问我使用 GUIDeFATE 的具体问题,但 GUIDeFATE 不像 PySimpleGUI 那样积极开发。)

    我用过 Kdialog对于过去的 bash 脚本,这不是我的想法。

    Perl 是否有 PySimpleGUI 的等价物?

    最佳答案

    我找不到像 PySimpleGUI 这样的东西在 Perl 中。我认为您需要基于工具包的完整 api 构建 gui(而不是像 PySimpleGUI 这样的简化版本的 api)。我知道Gtk3
    Tk工具包被积极使用。还有WxQtCore4工具包,但在我看来,这些工具包使用较少,也没有得到积极维护。

    这是 Gtk3 中的一个例子:

    use feature qw(say);
    use strict;
    use warnings;
    use Gtk3 -init;
    
    my $window = Gtk3::Window->new( 'toplevel' );
    $window->signal_connect( destroy  => sub { Gtk3->main_quit() } );
    my $grid = Gtk3::Grid->new();
    $window->add( $grid );
    my $label1 = Gtk3::Label->new('Some text on Row 1');
    $grid->attach($label1, 0,0,1,1);
    my $label2 = Gtk3::Label->new('Enter something on Row 2');
    $grid->attach($label2, 0,1,1,1);
    my $entry = Gtk3::Entry->new();
    $grid->attach($entry, 1,1,1,1);
    my $button1 = Gtk3::Button->new('Ok');
    $button1->signal_connect('clicked' => sub { say "You entered ", $entry->get_text( ) } );
    $grid->attach($button1, 0,2,1,1);
    my $button2 = Gtk3::Button->new('Cancel');
    $button2->signal_connect('clicked' => sub { $window->destroy() } );
    $grid->attach($button2, 1,2,1,1);
    $window->set_position('center_always');
    $window->show_all();
    Gtk3->main();
    

    关于perl - 有没有像 Perl 的 PySimpleGUI 这样的工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59481585/

    相关文章:

    linux - 如何为 Linux 解决这个计算

    perl - Excel::Writer::XLSX (Perl) 表内省(introspection)

    java - Java 是开发跨平台 GUI 应用程序的最佳语言吗?

    Perl 信号处理程序和评估

    java - 有什么方法可以控制 Swing 组件的缩放吗?

    php - 构建协作工具 - 检查用户当前是否正在编辑/拖动元素并显示对话框

    Linux bash 脚本 for 循环

    shell - 将主机名解析为 IP 地址的可移植方法

    perl - 我在尝试在文本中添加单引号时遇到问题

    linux - 查找 perl 执行脚本/路径