Comments 32
QT?
Почитал в Вики. На первый взгляд то что надо.
Вопрос только в том, как это все хозяйство (версии под разные платформы) потом тестировать?
А как на счет последних Visual Studio? Или там вся кроссплатформенность на .Net держится и приложение будет требовать фреймворка?
Вопрос только в том, как это все хозяйство (версии под разные платформы) потом тестировать?
А как на счет последних Visual Studio? Или там вся кроссплатформенность на .Net держится и приложение будет требовать фреймворка?
К сожалению я не qt'шник :)
Да .net требуется framework, на linux — это разрабатываемый не micorosft — mono.
Да .net требуется framework, на linux — это разрабатываемый не micorosft — mono.
Для решаемой задачи вполне подойдет, к тому же язык новый учить не придется, можно продолжать на VB.NET а потом и на C# перейти. Тут главный вопрос, достаточно ли только MS девайсов?
Чесно говоря не понимаю, что подразумевают под «кроссплатформенность на .Net»? :) Все официальные фреймворки только под их ОС.
Как раз с АПИ проблем нет, а вот контрол, который работает с HTTP отправляет и принимает ответ в один байт. И его уже не заставить никакими декларациями вернуть юникод. Таких примеров много. У меня два продукта на VB и оба требуют безупречной поддержки юникода. И я ее реализовал, но дается это с трудом. Хочется уже забыть об этой проблеме.
Если я правильно понял, то схема получается такая: C++ и кучка компиляторов под разные платформы (желательно, в одном пакете). Пока я слышал только про QT. Есть еще варианты или можно смело инсталлировать пакет и работать над «Hello World!»? :)
По поводе QT, там вроде как исходники должны быть открыты если вы им бесплатно будете пользоваться, уточните.
Если вас «тянет на низкий уровень» и хотите разрабатывать мультиплатформенные программы, то выбор скорее всего только С++ и «кучка компиляторов» :) Но при этом под MacOS возможно лучше использовать «родные» средства разработки.
Если вас «тянет на низкий уровень» и хотите разрабатывать мультиплатформенные программы, то выбор скорее всего только С++ и «кучка компиляторов» :) Но при этом под MacOS возможно лучше использовать «родные» средства разработки.
Сейчас пойдут тупые впросы…
В чем кодить? В блокноте? Или в ранней VS или в поздней VS или еще в борландах всяких? К чему удобнее прикручивать копиляторы? Это же наверняка тонкий момент — борландовский Си один компилятор поймет, другой — плеваться будет… Простите мой французский.
В чем кодить? В блокноте? Или в ранней VS или в поздней VS или еще в борландах всяких? К чему удобнее прикручивать копиляторы? Это же наверняка тонкий момент — борландовский Си один компилятор поймет, другой — плеваться будет… Простите мой французский.
Ну в QT вроде своя IDE, позволяет делать проги под KDE в linux, под windows и macos можно сделать с «нативным» интерфейсом. Но QT, покрайней мере под windows, создает не такие уж и маленькие проги :). Под linux я вообще, к сожалению, не могу ничего толком подсказать, как я понимаю чтобы добиться минимальности, прийдется отдельно кодить для КДЕ и Гном. Под винду наверное лучше VS — API и диалоговые окна для настроек. Под macos — язык Objective-C и IDE Xcode.
Вот такая хреновая каша получается, сам в результате небольшого поиска пришел к выводу что QT единственное приемлемое решение для разработки мультиплатформенных приложений. но и тут специфичные для каждой ОС операции прийдется реализовывать отдельно, думаю сюда стоит отнести и копирование выделенного текста или работа с буфером обмена.
Вот такая хреновая каша получается, сам в результате небольшого поиска пришел к выводу что QT единственное приемлемое решение для разработки мультиплатформенных приложений. но и тут специфичные для каждой ОС операции прийдется реализовывать отдельно, думаю сюда стоит отнести и копирование выделенного текста или работа с буфером обмена.
>Под linux я вообще, к сожалению, не могу ничего толком подсказать, как
>я понимаю чтобы добиться минимальности, прийдется отдельно кодить
>для КДЕ и Гном
Не согласен. Редкий дистр обходится только GTK или Qt слишком много прог завязано на каждый из них.
>но и тут специфичные для каждой ОС операции прийдется
>реализовывать отдельно, думаю сюда стоит отнести и копирование
>выделенного текста или работа с буфером обмена.
пример кросспратформенного копирования в буфер обмена выделенного в таблице текста
void Spreadsheet::copy()
{
QTableSelection sel = selection();
QString str;
for (int i = 0; i < sel.numRows(); ++i) {
if (i > 0)
str += "\n";
for (int j = 0; j < sel.numCols(); ++j) {
if (j > 0)
str += "\t";
str += formula(sel.topRow() + i, sel.leftCol() + j);
}
}
QApplication::clipboard()->setText(str);
}
Лаконично и красиво.
>я понимаю чтобы добиться минимальности, прийдется отдельно кодить
>для КДЕ и Гном
Не согласен. Редкий дистр обходится только GTK или Qt слишком много прог завязано на каждый из них.
>но и тут специфичные для каждой ОС операции прийдется
>реализовывать отдельно, думаю сюда стоит отнести и копирование
>выделенного текста или работа с буфером обмена.
пример кросспратформенного копирования в буфер обмена выделенного в таблице текста
void Spreadsheet::copy()
{
QTableSelection sel = selection();
QString str;
for (int i = 0; i < sel.numRows(); ++i) {
if (i > 0)
str += "\n";
for (int j = 0; j < sel.numCols(); ++j) {
if (j > 0)
str += "\t";
str += formula(sel.topRow() + i, sel.leftCol() + j);
}
}
QApplication::clipboard()->setText(str);
}
Лаконично и красиво.
Спасибо за подсказки. Под linux я вообще не смею ничего советовать, так как «не в теме» :) А про буфер обмена тоже поспешил, слишком уж общая для всех ОС вещь, пусть и реализация на уровне API разная. Но подскажите по поводу размера QT программ?
Если бесплатно — то нет права вшивать код в свою программу. В случае windows это приводит к тому что надо прикладывать ~15 мб библиотек. В случае linux предполагается что qt уже стоит у пользователя(в менеджере пакетов пишется зависимость). После таких вещей размер приложения с несколькими окнами без засовывания туда ресурсов(qt позволяет своими штатными методы зашить в исполняемый файл любые файлы любых размеров и дает удобный доступ к ним из кода) 100 килобайт в win и lin(с другими дела не имел… правда с S60 пытался, но это поиграться...).
Если использовать платную лицензию, то можно необходимые части библиотеки зашить прямо в исполняемый файл, причем получим размер в ~5 мб.(хотя это уже очень зависит от таго какие части qt используются… например не каждой программе нужно OpenGL(3d графика) и Sql одновременно — потому оправдано подключать лишь то, что требуется). Если еще чем-то пережать(upx), получаются очень компактные проги.
Если использовать платную лицензию, то можно необходимые части библиотеки зашить прямо в исполняемый файл, причем получим размер в ~5 мб.(хотя это уже очень зависит от таго какие части qt используются… например не каждой программе нужно OpenGL(3d графика) и Sql одновременно — потому оправдано подключать лишь то, что требуется). Если еще чем-то пережать(upx), получаются очень компактные проги.
Нашел конкретнее habrahabr.ru/blogs/qt_software/49080/.
У меня у самого есть желание написать несколько мультиплатформенных утилит небольшого размера, и также задумался о перечисленных вами проблемах. Так что к Вам просьба — напишите топик о том какое решение нашли :). Удачи и ждем новых версий Вашей замечательной утилитки!
Некоторое время назад задавшись именно таким вопросом склонился к Qt.
Один и тот же код легко компилируется под Linux,Window,Mac и Solaris.
Писать приятно и документация очень хороша.
Относительно лицензирования — есть два вариант: удовлетворяя LGLP ничего платить не надо, или можно купить лицензию а далее без ограничений.
Один и тот же код легко компилируется под Linux,Window,Mac и Solaris.
Писать приятно и документация очень хороша.
Относительно лицензирования — есть два вариант: удовлетворяя LGLP ничего платить не надо, или можно купить лицензию а далее без ограничений.
А мне понравился ваш клиент для google translate. А по теме ничего не могу посоветовать
dark_dimius, ruzzz:
Спасибо большое, начинаю что-то понимать. Осталось придумать как бюджетненько решить «организационные вопросы» — дебаг под всеми этими платформами.
Спасибо большое, начинаю что-то понимать. Осталось придумать как бюджетненько решить «организационные вопросы» — дебаг под всеми этими платформами.
Я не совсем понимаю проблему — под всеми платформами успешно работает и дебажит qt-creator
Но платформы то должны быть под рукой, а я кроме Windows и Dos в своей жизни ничего не видел. И как я буду патчить KDE под Linux? Это первая проблема. Вторая — разместить все на минимальном количестве железа. Винды с линуксами на комп я поставлю, а макоси? Или они теперь на том же железе пашут без проблем? Или эмуляторами этот вопрос решать? Если для вас на эти вопросы есть очевидные ответы — укажтите их здесь, пожалуйста. Поверьте, даже такие вещи мне помогут выстроить более полную картину предстоящей заморочки.
Я, кстати, понимаю, что могу напоминать идиота своими вопросами :/
Я, кстати, понимаю, что могу напоминать идиота своими вопросами :/
>Или они теперь на том же железе пашут без проблем?
Ну… маки уже давно на интеловских процах. Да, у них поддерживается железо только похожее на то, что в маки ставят. Но на тоже железо ставится linux и windows.(Но там есть подводные камни — например OS X так и наровит все незнакомые типы партиций переформатить на свои....)
Правда, делал бы это я — я бы сделал так — поставил на свою любимую ось виртуальную машину. Я бы ставил, еслми говорить конкретнее на gentoo(linux) виртуалку virtualbox в которой виртуальные винды(разных версий) и mac. Но чтобы там поставить мак — это немного секса(http://forums.virtualbox.org/viewtopic.php?t=2076). Когда-то это делал, и это было интересно :-).
А вариант без секса — берется мак, в него заливается virtualbox. Туда все остальное.
Ну… маки уже давно на интеловских процах. Да, у них поддерживается железо только похожее на то, что в маки ставят. Но на тоже железо ставится linux и windows.(Но там есть подводные камни — например OS X так и наровит все незнакомые типы партиций переформатить на свои....)
Правда, делал бы это я — я бы сделал так — поставил на свою любимую ось виртуальную машину. Я бы ставил, еслми говорить конкретнее на gentoo(linux) виртуалку virtualbox в которой виртуальные винды(разных версий) и mac. Но чтобы там поставить мак — это немного секса(http://forums.virtualbox.org/viewtopic.php?t=2076). Когда-то это делал, и это было интересно :-).
А вариант без секса — берется мак, в него заливается virtualbox. Туда все остальное.
VirtualBox, с макос сложнее — хакинтош или покупка мака
Sign up to leave a comment.
Хочу стать настоящим программистом