Qt + Ruby = настройка в Linux и Windows

    Привет всему сообществу. Сегодня напишу как настроить привязку qt и ruby в Linux и Windows.
    Ruby — интерпретируемый язык высокого уровня для быстрого и удобного объектно-ориентированного программирования. Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, «сборщиком мусора» и многими другими возможностями. Ruby близок по особенностям синтаксиса к языкам Перл и Эйфель, по объектно-ориентированному подходу к Smalltalk. Также некоторые черты языка взяты из Python, Лисп, Dylan и CLU. Подробнее тут

    Trolltech Qt (произносится «кьют») — кросс-платформенный инструментарий разработки ПО на языке программирования C++.Подробнее тут


    Linux


    Система линукс у меня будет Ubuntu, поскольку на ней работаю. Думаю под остальные будет тоже не трудно. Начнем с нее. Заходим в раздел Система->Администрирование->Менеджер пакетов Synaptic. Нам по минимуму надо поставить пакеты:
    ruby-full — полная инсталяция руби
    rubygems — gems для ruby
    libgemplugin-ruby — плагин для руби
    libqt4-ruby — библиотека ruby для работы с qt
    Остальные зависимости система сама подтянет (например libqt4-core, libqt4-gui и прочее)
    Также нам потребуется редактор для работы с Ruby. Я использую SciTE. Это дело вкуса :)
    После того как пакеты установлены мы можем протестировать работоспособность. Заходим в туториал, и возьмем например 3 пример.

    require 'Qt4'

    app = Qt::Application.new(ARGV)

    window = Qt::Widget.new()
    window.resize(200, 120)

    quit = Qt::PushButton.new('Quit', window)
    quit.font = Qt::Font.new('Times', 18, Qt::Font::Bold)
    quit.setGeometry(10, 40, 180, 40)
    Qt::Object.connect(quit, SIGNAL('clicked()'), app, SLOT('quit()'))

    window.show()
    app.exec()

    Расписывать что данный код делает я не буду — там ниже в том же мануале все объясняется подробно. Должна появится форма с кнопкой выхода. Код в SciTE сохраняем под расширением rb и нажимаем F5 (переметры по-умолчанию должны отлично сработать).
    Наш результат
    1
    А вот и долгожданное окошко
    2
    Если оно появилось — значит все установленно удачно и вы можете начать программировать. Добавлю что в основном с установкой и настройкой под Линукс не должно возникнуть особых проблем, поскольку ставил на десятки машин и пока не наблюдал проблем с этим.

    Windows


    Теперь начнем с Windows(с ним получилось больше возьни).
    Нам потребуется:
    Ruby 1.8.5 Установщик в один клик — название за себя говорит :)
    qtruby4-1.4.9-mswin32.gem — библиотека qt4 для ruby
    nmake — утилита автоматической сборки для Windows (без нее qtruby не установится)
    Начнем с того, что установим Ruby (при установке должно также будет установится rubygems).
    Там же в установке будет лежать SciTe :)
    555
    Дальше нам надо будет запустить nmake. Он создаст два файла — NMAKE.ERR и NMAKE.EXE. Что б rubygems долго его не искал скопируйте их в %RUBY_DIR%\bin, где %RUBY_DIR% — директория куда вы установили Ruby.
    Дальше переходим в командную строку (Пуск->Выполнить->cmd). Проверяем что gem зарегистрирован в системе и работает — пишем gem --help. Если написало помощь — все хорошо.
    5556

    Теперь установим qtruby. Переходим в каталог (в консоли), куда мы скачали qtruby4-1.4.9-mswin32.gem и пишем команду gem install qtruby4-1.4.9-mswin32.gem. Установка должна завершится удачно так


    Если написало «ошибка буфера» — значит вы скачали qtruby, который не подходит для вашей системы.
    Сначала я думал что это все, но не тут то было. Потребовалось ещё одна библиотека — mingwm10.dll.
    6

    Скачал я её тут и сбросил в %RUBY_DIR%\bin.
    Ну а теперь можем запустить наше приложение и любоваться окошком с кнопкой.
    9

    Удачного Вам программирования!
    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 14
      0
      Как вы думаете, можно ли собрать установщик для windows в котором будут все необходимые файлы?
        0
        Думаю можно. Поместить в инсталятор все библиотеки и запустить nmake и gem install qtruby4 (например через bat файл)
        +1
        Ммм… Занимательно!
          0
            0
            Мануал и к нему подходит :)
              0
              Да, кроме ссылки на инсталлятор ;)
            0
            Когда я пробовал писать на Qt/Ruby одну штуку на базе xmpp4r, то наткнулся на ограничения потоковой модели. Где-то внутри xmpp4r было блокирующее обращение к сокету, и в момент подключения к серверу все на пару секунд подвисало, поскольку Qt здесь работает в том же системном потоке. Что с этим делать, я так и не придумал.
              0
              QThread вам в помощь.
                0
                Спасибо, кэп, но QThread в те времена не был экспортирован в Руби. Как сейчас, не знаю.
              0
              Хм интересно, но имхо wxRuby поинтереснее будет (полегче, рисует родными для ос средствами, лицензия LGPL)
                0
                Спасибо — с установкой кьют на виндах были проблемы. Мануалы не спасали.
                  0
                  Недавно заинтересовался я Qt для Ruby и обнаружил странные проблемы с кодировкой (вставляем строку из UNICODE UTF8 файла в многострочное текстовое поле (TextEdit) и видем каракули), может быть кто-нибудь тоже с таким сталкивался?
                    0
                    У меня была такая проблема, решилась просто: в саммом начале пишеш $KCODE=«U» и все! Мне помогло.
                      0
                      RubyInstaller 1.9.2 + gem install qtbindings + Cmake 2.8 + QtSDK 4.7.3 (mingw32)
                      Работает, но детально еще не тестировал.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое