GUI в Perl (Tk)

Интерфейсы в перл (Tk)

Решил немного попрактиковаться в написании скриптов с интерфейсом на perl.
Начать решил с базового модуля - Tk (да я знаю про Qt, но решил использовать Tk).
В качестве примера реализовал скрипт, который скачивает композиции из пользовательской библиотеки Last.fm

В итоге скрипт будет выглядеть примерно так:
lastfm downloader

Итак начнем. Сначала подключим необходимые модули:

Для начала несколько переменных, которые понадобятся далее

Теперь создадим окно и разместим необходимые элементы управления

Создадим и заполним таблицу для композиций

Далее размещаем элементы управления, кнопки и поля для ввода логина, пароля.

Опишем функции используемые в программе

Скачать исходник одним файлом можно тут: lastfm.txt

P.S. Код далеко не идеален, но щито поделать...

GUI в Perl (Tk): 24 комментария

  1. Я мечтаю, когда на Python уже сделают нормальный Tk - под виндой есть еще Tix, но бля под линухом(мну собирал Питон 2.6 из исходников) их тоже нужно качать вместе с Tcl/tk :( А также мечтаю когда увижу ttk в стандартной поставке (в py3k уже есть) По сабжу то тоже недавно писал, правда на том же питоне скрипт с Гуем и тоже на Тк - получилось кривовато, но мну радует что вообще хоть что-то получилось :) А так однозначно плюс за Гуй, и моя имха такова - всякие Qt должны быть исключительно Гуевыми либами, а не тем чем они сейчас являются. Слишком там дохера лишнего

      1. Да не не Вы выложите как на скриншоте и код допилите а то я каким то перл отладчиком проверял и там туева хуча ошибок и неполучилось себе скомпилить

          1. Это же скрипт, зачем его в exe компилировать? А так были программы типа perlapp и perl2exe, только я ими не пользовался можно сказать

  2. Вы меня простите пожалуйста, но как его запустить? Что для этого скачать и какое расширение должно быть у файла?

        1. Шоп люди могли тоже пользоватся, тем кому программирование ненужноа нужна хорошая софтинка для lastfm

  3. Я скачала его, и расширение поставила нужное. Но ничего не происходит. Просто при запуске файла возникает черное окошко и тут же исчезает. Поэтому я и спросила.

  4. Несёте компьютерную грамотность в массы. Перепробовала 3 версии ActivePerl, пока не нашла нужную, потом понадобилось установить модуль Tk, нашла как, установила. И наконец работает! Ура! В следующий раз будет легче.

  5. Скиньте готовый файл пожалуйста, у меня не получается скомпилировать, разные ошибки в коде дает, например:

    C:\Documents and Settings\Admin\Мои документы\p2x-11.00-Win\perl2exe-11.00-Win>p
    erl2exe.exe -gui lastfm.pl
    Error: Can't open source file
    Backslash found where operator expected at C:\Documents and Settings\Admin\Мои д
    окументы\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1, near "Settings\"
    syntax error at C:\Documents and Settings\Admin\Мои документы\p2x-11.00-Win\perl
    2exe-11.00-Win\_main.pl line 1, near "Settings\"
    Backslash found where operator expected at C:\Documents and Settings\Admin\Мои д
    окументы\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1, near "Admin\"
    Unrecognized character \214 ignored at C:\Documents and Settings\Admin\Мои докум
    енты\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1.
    Unrecognized character \256 ignored at C:\Documents and Settings\Admin\Мои докум
    енты\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1.
    Unrecognized character \250 ignored at C:\Documents and Settings\Admin\Мои докум
    енты\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1.
    Unrecognized character \244 ignored at C:\Documents and Settings\Admin\Мои докум
    енты\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1.
    Unrecognized character \256 ignored at C:\Documents and Settings\Admin\Мои докум
    енты\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1.
    Unrecognized character \252 ignored at C:\Documents and Settings\Admin\Мои докум
    енты\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1.
    Unrecognized character \343 ignored at C:\Documents and Settings\Admin\Мои докум
    енты\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1.
    Unrecognized character \254 ignored at C:\Documents and Settings\Admin\Мои докум
    енты\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1.
    Unrecognized character \245 ignored at C:\Documents and Settings\Admin\Мои докум
    енты\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1.
    Unrecognized character \255 ignored at C:\Documents and Settings\Admin\Мои докум
    енты\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1.
    Unrecognized character \342 ignored at C:\Documents and Settings\Admin\Мои докум
    енты\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1.
    Unrecognized character \353 ignored at C:\Documents and Settings\Admin\Мои докум
    енты\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1.
    Backslash found where operator expected at C:\Documents and Settings\Admin\Мои д
    окументы\p2x-11.00-Win\perl2exe-11.00-Win\_main.pl line 1, near "Win\"
    Execution of C:\Documents and Settings\Admin\Мои документы\p2x-11.00-Win\perl2ex
    e-11.00-Win\_main.pl aborted due to compilation errors.

    C:\Documents and Settings\Admin\Мои документы\p2x-11.00-Win\perl2exe-11.00-Win>

  6. Также делал cpan Tk

    Все скачало, а под конец dmake не является внутренней командой файлом лалала.

    Чесно, уже 3 подхода было скомпилировать это, ну никак - ошибки ошибки ошибки.

    1. Microsoft Windows XP [Версия 5.1.2600]
      (С) Корпорация Майкрософт, 1985-2001.

      C:\Documents and Settings\Админ>perl.exe lastfm.pl
      Can't open perl script "lastfm.pl": No such file or directory

      C:\Documents and Settings\Админ>cd c:\perl\bin

      C:\Perl\bin>perl.exe lastfm.pl
      No such class F at lastfm.pl line 184, near "open my F"
      syntax error at lastfm.pl line 184, near "my F,"
      Bareword "MainLoop" not allowed while "strict subs" in use at lastfm.pl line 85.

      Execution of lastfm.pl aborted due to compilation errors.

      C:\Perl\bin>

    1. Тут, кажется, уже отписывали, что статья - мануал по тому, как использовать Tk в Perl, а не готовый софт...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *