Pull to refresh

Comments 42

Упорно выдает menu.rb:1:in `require': no such file to load -- Tk (LoadError)
from menu.rb:1

Не смотря на apt-get install ruby1.8-full tk libtcltk-ruby

Заработало когда поменял
require 'Tk'
на
require 'tk'

Убунтоводы будьте внимательны :)
Да, только что попробовал под убунтой это дело. Вы совершенно правы, дело в регистре импортируемой библиотеки. Другое дело, что виндовоз не жаловался.
А виндовз же, вроде как, регистры в именах файлов не различает, ему что tk что TK, что tK по барабану.
Самому виндовозу да. И интерпретатору, соответственно, тоже.
Не совсем. Просто ruby 1.9.x для Windows допускает ошибки в написании имени библиотеки. На всех остальных платформах, увы, придется писать 'tk' как в мануале :(.
Мм… Можно поинтересоваться, что вы имели ввиду под «совершает ошибки». Каким образом?
Можно. Require опосредовано использует имя файла. Файловая система Windows case-insensitive — можно ошибиться в заглавных / строчных буквах и это будет работать. Соответственно, начиная с Ruby 1.9 под Windows если вы ошиблись в заглавной/строчной букве в строке, которую передаете в require, то это будет работать. На всех остальных операционных системах — не будет. Более подробно про это написано в инструкции к Ruby.
В 1.8 под виндой не будет? Чисто для справки :)
Увы, не будет. Специально проверил на Windows 7.
Не будет, подтверждаю.
Спасибо. Да, проверил. Работает только в 1.9.*.
Прошу прощения за то, что ввёл вас в некоторое заблуждение по поводу регистра имени импортируемой библиотеки. Через несколько часов внесу правки.
Даже не знаю, что вам сказать. У меня всё работает.
На Tk можно писать нативно выглядящие интерфейсы?
Да, можно. Пример есть в комментариях к вышеупомянутой статье «Введение в Tkinter».
В начале топика писал. Qt биндинги еще не установил. Плюс Tk входит в стандартную поставку Ruby. Выбор был очевиден. На следующей неделе будет статья, посвященная связке Ruby/Qt.
Я не в претензию к вам, это вопрос в студию
Артём, я это не воспринимал, как претензию. Просто ответил, полагая, что вопрос адресован мне.
Хорошо, Михаил, тогда какое твое мнение по этому вопросу?
Промахнулся немного. Ответ ниже.
Перефразирую. В общем и целом, объективных причин использовать Tk вместо Qt нету.
Зачем использовать Qt, если есть macruby?
Всё-таки это разные вещи:
MacRuby — это реализация Ruby. Да, с неплохим интерфейсом, но всё же в первую очередь это реализация языка программирования.
Qt — фреймворк, позволяющий писать кроссплатформенные приложения.

Вопрос должен стоять так: Зачем использовать Qt, если есть Cocoa?
Ответ: Напишите на Cocoa для Windows и запустите попробуйте, а я тем временем напишу тоже самое на Qt и запущу, как на Winе, так и на Linuxе и MacOSe.
Кто вообще будет писать десктопное приложение на рубях, тем более используя через одно место реализованный qt-ruby? Ещё и кроссплатформенное. Какое-то рассуждение о сферическом коне в вакууме.
Да, я вас понимаю. Ну во-первых, контекст тут «изучение и написание десктопных приложений на Tk 'just for fun'», а не «написание десктопных приложений для дальнейшего использования в продакшне».
Во-вторых, связка Ruby/Qt сейчас довольно хороша в использовании и сделана она не через пятую точку.
Затем что Tk интегрирован в MRI Ruby, затем, что позволяет делать быстрые и лёгкие интерфейсы.

Когда вам не нужен красивый, вылизанный интерфейс, а нужно сделать его быстро и без граблей.
Совершенно верно. Хотя бы для вас это очевидно.
BTW, чисто для справки, скорость разработки интерфейса на Qt и Tk при прочих раных одинаковая. На Qt даже чуть быстрее, потому что многие вещи — тултипы, центрирование, модальность — доступны из коробки.
Qt требует установки конечным пользователем, Tk идет в комплекте. Если программы используются кем-то кроме разработчика, то имеет смысл минимизировать внешние зависимости. В целом небольшому кругу народа можно объяснить как сделать «gem install qtbindings», написать инструкцию что делать если оно не ставится и отвечать на e-mail вида «не ставится qtbindings, ошибка internal gem error».
Я считаю, что в этой сфере нужно писать на Qt (в отличие от Tk быстро развивается, имеет большое и хорошее сообщество и т.д.). Применительно к сегодняшней практике с Tk. Выбор был обусловлен, как я уже говорил, поставкой вместе с Ruby. Всё затевалось, как «just for fun», в котором Tk отработал на 100%.
Спасибо за хорошую статью!
Не удержался:

Астрологи провозгласили месяц Tk.
Прирост статей о Tk увеличен вдвое.
Рад, что вам понравилось.
По поводу лопаты: вам мои +100500 плюсов.
Постараюсь с данной темой не тормозить, но не ждите ранее, чем через 2 недели.
Я точно видел «Введение в Ruby/Tk. Часть вторая».
Куда оно делось?
Да, вы могли её видеть. Убрал на некоторое время в черновики затем, чтобы добавить материал по теме и исправить ошибки. Завтра вечером думаю выложу.
habrahabr.ru/blogs/ruby/134361 — вот. Во вкладках на ноуте осталась. Я думал, у меня что-то с головой.
Хвала Аллаху, на линуксе никто никогда не делает то, что ему кажется правильным.
Суспенд, он и в Африке суспенд.

Как раз почитаю, может поумнею.
Прошу вас, потерпите немного. Часть вторая будет являться ничем иным, как справочником по свойствам виджетов в Тк (их 40). Как только, так сразу выложу. Просто времени катастрофически не хватает.
Sign up to leave a comment.

Articles