Новый проект: Я испытываю затруднения при выборе языка для использования

Я не думаю, что ipady вполне делает то, что вы думаете, что делает. Следует признать, что документация немного неясна по этому вопросу. Это не добавляет эквивалент внутреннего поля. Вместо этого он просто добавляет столько пикселей к высоте виджета, и пиксели добавляются на внутренней стороне границы, а не на внешней стороне. Он не блокирует использование этих пикселей.

Если ваш кадр обычно имеет высоту 20 пикселей, то с ipady=50 ваш виджет теперь будет иметь высоту 120 пикселей (50 * 2 + 20). Любые виджеты, добавленные внутри этого фрейма, могут использовать все пространство внутри фрейма. Таким образом, когда вы используете grid для помещения чего-либо в нулевую строку, оно все равно будет отображаться в самой верхней части кадра, чуть ниже границы.

Это именно то, что я вижу в вашем коде. На моей машине frame2 без ipady=50 имеет высоту 20 пикселей. Когда я добавляю ipady=50, рамка становится 120 пикселей в высоту. Метка появляется в самом верху рамки, поскольку она была помещена в нулевую строку.

TL; DR: не думайте о том, что ipady говорит «мне нужно так много внутреннего поля», а скорее «мне нужно гораздо больше дополнительного пространства внутри».

6
задан 4 revs, 2 users 100% 9 October 2008 в 07:33
поделиться

8 ответов

Почему бы не использовать гибрид обоих? Это обычно - путь, которым большая разработка идет в эти дни.

Я предложил бы Lua/C ++ или комбинация Python/C++ (я не уверен, как хорошо комбинация Perl/C++ работает, но это может быть хорошим вариантом также).

Лично я сделал набор с Lua/C ++ комбинация, и это довольно фантастически.

9
ответ дан 8 December 2019 в 02:08
поделиться

Я - и C++ и программист Perl. C++ является хорошим языком, но каждый раз, когда у меня есть выбор, я иду с Perl, так как разработка просто продолжается настолько более быстро.

Несколько комментариев:

  1. ПАРИТЕТ, perlapp, и perl2exe не являются компиляторами. Они - поставщики программного блока. Нет никакого компилятора Perl кроме самого жемчуга. Если Вы хотите некоторую форму формы байт-кода кода Perl, необходимо будет ожидать Perl 6 на Попугае.
  2. Я использовал ПАРИТЕТ для упаковки приложения с в общей сложности о 500k SLOC, не включая сам жемчуг. Это хорошо работало, выполнил ту же скорость как сам жемчуг, но запуск был медленнее. Это было 2005. С тех пор выполнение запуска значительно улучшилось при установке Архива:: Разархивируйте:: Пакетный модуль на машине разработки, где Вы упаковываете программу. Я успешно использовал ПАРИТЕТ для различных приложений, варьирующихся по размеру от крошечного до вышеупомянутых 500k строк. Если Вы нуждаетесь в помощи с ПАРИТЕТОМ, существует активный и дружественный список рассылки. Просто сделайте нам и Вам одолжение не вмешивания с "OMG, ничто не работает, помогите мне, kthx!". Люди делают это все время (и иногда все еще получите справку).:)
  3. Поточная обработка Perl не является большой. Проверьте, соответствует ли что-то как POE Вашему счету вместо этого. Я - threads.pm пользователь, но я не был бы. С соответствующими извинениями трудолюбивому специалисту по обслуживанию, Jerry D. Hedden.
  4. wxPerl находится в довольно хорошей форме и существует сообщество вокруг этого. Естественно, так как wxWidgets является C++, это всегда - немного бита, более актуального и завершенного.
  5. Perl SDL является прямой оберткой вокруг библиотеки. (Небольшая) документация предполагает, что Вы уже знаете это. По моему опыту, чтение документов для библиотеки на другом языке может быть чем-то вроде стычки.
  6. Таймеры прекрасны в жемчуге: Время:: HiRes
  7. Мобильность трудна. Больше в C++, чем в Perl, но это действительно всегда снижается для дисциплинирования и способность протестировать на многих платформах.
  8. Для Perl в Windows удостоверьтесь, что Вы проверяете Земляничный Perl.
12
ответ дан 8 December 2019 в 02:08
поделиться

Пойдите с C++. Таймеры, поточная обработка, аудио, SDL, wxwidgets, это все вещи, которые Perl может сделать, но действительно не выделяется в. Кроме того, ПАРИТЕТ или perl2exe являются неуклюжими механизмами для распределения. Они работают, но они не идеальны. Между тем C++ (и я высоко поощряю Вас смотреть на использование Повышения), соответствовал бы приятно этой роли.

11
ответ дан 8 December 2019 в 02:08
поделиться

Большой причиной использовать Perl является метапрограммирование.

Perl достаточно гибок, чтобы позволить Вам написать код для написания кода (это - то, как Американский лось делает свое волшебство). Вы сэкономите время и сократите количество ошибок, которые необходимо раздавить.

Большой причиной использовать Perl является CPAN.

6
ответ дан 8 December 2019 в 02:08
поделиться

У меня есть ПАРИТЕТ использования к пакету существенная программа Perl/Tk для Windows. Потребовалось немного игры, но это работало.

Если Вы, по крайней мере, столь же испытаны в Perl как в C++, разработка в Perl должна быть быстрее. Но скорости во время выполнения для эквивалентной программы будут медленнее. Вся остальная часть Ваших критериев может быть удовлетворена также, таким образом, я сказал бы, что она сводится к личному выбору.

5
ответ дан 8 December 2019 в 02:08
поделиться

Лично? Я говорю, не застревают на этом слишком долго. Существуют за и против движения так или иначе, но оно кажется, что Вы добираетесь опасно близко к застреванию при "аналитическом параличе". Если ничто иное, бросьте монетку или выберите ту, которая Вы думаете, имеет самое симпатичное имя.

4
ответ дан 8 December 2019 в 02:08
поделиться

Запишите свою базовую функциональность в C++, затем запишите фронтенд для своего приложения в инструменте для рассматриваемой платформы, т.е. Какао для Mac OS X.NET/Delphi/MFC для Windows, и т.д.

Это - мой предпочтительный способ разработать межплатформенные настольные приложения. Конечно, я знаю так очень мало о том, что Вы пытаетесь выполнить, таким образом, это может быть слишком толстым для Вас.

0
ответ дан 8 December 2019 в 02:08
поделиться

Функция важна. Код, независимо от языка, сделает подобные вещи, особенно при пользовании теми же библиотеками и компонентами. Если Вам не разработали точную функцию через библиотеки и инструментарии, моделируете ее в Perl.

Существует аргумент, что разработка займет меньше времени в динамические языки. Существуют подобные проблемы в Perl и C++ в получении выпадающего в правильном месте, заполняя его правильными значениями, внося надлежащее изменение в состоянии программы от ввода данных пользователем.

Если Perl не делал его на определенных платформах, преобразуйте код к C++.

Существуют, вероятно, некоторые указатели, которые помогли бы в этом подходе:

  1. Это означает вероятную запись прототипа с Perl OO. После того как Вам закрепили высокоуровневую функциональность на одной платформе - при условии, что можно получить это далеко в Perl - затем, C++ является более или менее оптимизацией.

  2. Возможно, Вы могли бы ограничить прототип более или менее родственникам C++. Но я не уверен в этом, можно анализировать a map в цикл или даже просто заменяют его функцией фильтра, вызванной с указателем функции для тестовой функции.

1
ответ дан 8 December 2019 в 02:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: