Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чем вы пользуетесь? какими из библиотек? 
:(
    Опции темы
 
Какими графическими кроссплатформенными библиотеками вы пользуетесь?
QT [ 240 ]  [68.77%]
GTK [ 35 ]  [10.03%]
wxWidgets [ 53 ]  [15.19%]
другой [ 21 ]  [6.02%]
Всего проголосовавших: 302
В этом опросе возможны множественные ответы
Гости не могут голосовать 
kemiisto
Дата 25.8.2011, 23:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 8
Всего: 160



Цитата(SolRus @  25.8.2011,  21:23 Найти цитируемый пост)
а ну видимо я ошибся при GNU LGPL можно статически линковать... \\?

Явным образом LGPL не запрещает статическую линковку. В тексте лицензии вообще нет упоминания ни о каких линковках. Но там есть следующий момент. Должна существовать возможность связывания вашего ПО с новейшей версией программы или библиотеки, охваченной LGPL. 

Что для этого сделать написано в пункте 4d. Под циферкой 1 речь идёт как раз о той самой динамической линковке:
Цитата
1) Use a suitable shared library mechanism for linking with the Library.


А вот под циферкой 0 есть кое-что ещё, что пригодится как раз при статической линковке. Можно предоставить исходный код вашего приложения или объектный код, в таком виде, чтобы обеспечит возможность линковки с другой версией библиотеки.

Но это вопрос неоднозначный. То есть, если открывать исходники, то тут то всё однозначно и правильно. А вот вариант с предоставлением объектного кода спорный. Так что обычно рекомендуют LGPL-библиотеки линковать динамически, если не хотите открывать исходный код. Даже у Qt это не раз озвучивалось.

Но если стоит вопрос "Позволяет ли LGPL статическую линковку?", то ответ "Да, конечно." Только исходный код придётся открыть. Ну или вот этот спорный вариант с объектным кодом использовать...

Цитата(SolRus @  25.8.2011,  21:23 Найти цитируемый пост)
к примеру windjvu, mtorrent, virtualdub

Забавные у тебя примеры. Windows-only программы сравнивать с программами, написанными под кросс-платформенную либу? Смеёшься?

Цитата(SolRus @  25.8.2011,  21:23 Найти цитируемый пост)
заметь этим программам не нужно тягать в своем дистрибутиве к примеру библиотеку QtGui4.dll (почти 10 мб)

Спасибо, что просвятил. smile 

Цитата(SolRus @  25.8.2011,  21:23 Найти цитируемый пост)
ну, эт... самое...) раз такой умный, может сам напишешь что там должно быть на твое усмотрение, я скажу спасибо и остальные пользователи рувики (хотя думаю тебя это не мотивирует)

Меня это мотивирует не достаточно. Скажем так - есть дела и поважнее.

Цитата(SolRus @  25.8.2011,  21:23 Найти цитируемый пост)
ps: можно ли на qt написать программу которая по сути имеет лишь несколько графических элементов ( кнопка, комбобокс, таблица) размером <1 мбайт? < 100 кбайт? подразумевается статическая линковка

Я статически ни разу не линковал. Но думаю, что ответ, скорее, отрицательный.

Если тебе не нужна кросс-платформенность и при этом нужен (уж не знаю зачем, демосценщики вы наши smile ) столь малый размер программы, ты ошибся разделом. Подумай об этом.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
bsa
Дата 29.8.2011, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Цитата(SolRus @  25.8.2011,  22:23 Найти цитируемый пост)
ps: можно ли на qt написать программу которая по сути имеет лишь несколько графических элементов ( кнопка, комбобокс, таблица) размером <1 мбайт? < 100 кбайт? подразумевается статическая линковка

Qt не сильно предназначен для создания программ уровня "привет мир". Основное - создание бизнес-приложений (например, Adobe Photoshop). В таких приложениях размер библиотеки 10-20 МБ не считается чем-то экстраординарным. Зато очень ценится возможность быстро написать основную часть программы не заморачиваясь на создание кнопочек/окошек, а так же при необходимости портировать на другую платформу.
Например, начинающий программист вряд ли оценит то, что интерфейс для работы с таблицей в SQL БД делается всего в 10-20 строк. Ну не надо ему это...
PM   Вверх
Amp
Дата 6.9.2011, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 7
Всего: 17



Gtk+ пытается в Windows работать точно также как и Qt - получает через системный вызов битмап с отрисованным контролом (или же его части) и блитит его на окно. Но так как почти всем плевать на поддержку win32-версии gtk+, то до ума рендеринг системной темы не доведен (например отсутствует анимация fade in/out в Vista/7).
PM MAIL   Вверх
Randajad
Дата 10.6.2012, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 15.3.2012

Репутация: нет
Всего: 8



Это ваше Qt использует MOC, что не является нативными сями, плюс лицензия.
wxWidgets действительно использует нативные контролы и весит много меньше. Хеломир меньше метра собрать реально, возможности сопоставимы с кт.
Так что именно по этому его и выбираем!

Ах да, хочу передать привет тем людям, кто считает, что .net - это нормально. Вас проклинают те люди, которым из-за вашей проги с одной кнопкой нужно тащить 30 метров этого уродства.

Это сообщение отредактировал(а) Randajad - 10.6.2012, 16:45
PM MAIL   Вверх
_GRIN_
Дата 10.6.2012, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



основной плюс при выборе Qt - это документация (и онлайн и асситент интегрированный в creator).

Цитата(Randajad @  10.6.2012,  14:36 Найти цитируемый пост)
Это ваше Qt использует MOC, что не является нативными сями

=) после определнного момента перестаёшь обращать внимание не то что на чистоту языка, а вообще на язык. Любой необходимый базис нового языка изучается за неделю на ура. Так что это скорее предрассудок. Или вы про инструментарий (компиляторы)? В таком случае даже "чистый спп" (например 2011) не всеми компиляторами поддерживается в полной версии.

Цитата(Randajad @  10.6.2012,  14:36 Найти цитируемый пост)
плюс лицензия

А в чём проблема с лицензией.
Если пишешь для себя, то спокойно юзай опенсорс вариант.
Если ты продаёшь свой продукт (и продаёшь успешно) то спокойно можно отстегнуть за удобный инструмент (ты же по сути тоже за свой труд хочешь деньги получать).

Цитата(Randajad @  10.6.2012,  14:36 Найти цитируемый пост)
Хеломир меньше метра собрать реально

Размер результирующего файла (из личного опыта) интересует разве что определённую группу программистов, придающих этому внимание.
Остальных и пользователей в том числе это интересует по сути в последнюю очередь.
Есть конечно исключения для эмбеддед систем, но там обычно вообще на си и асме пишут.



--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
Randajad
Дата 11.6.2012, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 15.3.2012

Репутация: нет
Всего: 8



MOC можно приделать далеко не к любому IDE. Qt становится невозможно юзать без перехода к другому IDE.
Конечно можно отстегнуть, наверное так и надо делать. Слово экономия нам чуждо. Действительно, сейчас все богатые, а в компьютерах харды уже на террабайты и памяти гигабайты. smile
Реализуя какой-нибудь алгоритм в своем приложении вы так же мыслите, позвольте поинтересоваться? smile

Если минус wxWidgets - это документация - да, там есть пробелы в ней. Но они не такие значимые, имхо.
PM MAIL   Вверх
borisbn
Дата 11.6.2012, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Цитата(_GRIN_ @  10.6.2012,  22:50 Найти цитируемый пост)
Если ты продаёшь свой продукт (и продаёшь успешно) то спокойно можно отстегнуть за удобный инструмент

Лицензия Qt не запрещает продавать свой продукт, сделанный из опенсоурс библиотеки. Даже не нужно, чтобы ваше приложение имело бы такую же лицензию. Главное - не изменять саму библиотеку.

Цитата(Randajad @  11.6.2012,  08:32 Найти цитируемый пост)
MOC можно приделать далеко не к любому IDE

А надо ? Есть IDE лучше, чем QtCreator под линукс и студия плюс Qt-шный аддон для Windows ?

Цитата(_GRIN_ @  10.6.2012,  22:50 Найти цитируемый пост)
Размер результирующего файла (из личного опыта) интересует разве что определённую группу программистов, придающих этому внимание.
Остальных и пользователей в том числе это интересует по сути в последнюю очередь.

Вот полностью согласен (никогда не понимал эту "определённую группу"). Randajad, вот скажи, неужели ты из двух программ, решающих  примерно одинаковые задачи (например - месенджеры QIP и PSI), выбираешь исключительно по тому, сколька каждая "весит" ? Разве не удобство, функционал, неглючность и т.д. и т.п. ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
boostcoder
Дата 11.6.2012, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Randajad, ты не о том говоришь.
первый и основной минус кути в том, что она не может без moc`а. а тот в свою очередь, не дает кодить в привычном для меня стиле, ибо запрещает шаблоны.
второй минус(на мой взгляд) - размножаются ###кодеры.

PM WWW   Вверх
_GRIN_
Дата 11.6.2012, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



Цитата(Randajad @  11.6.2012,  06:32 Найти цитируемый пост)
Конечно можно отстегнуть, наверное так и надо делать. Слово экономия нам чуждо. Действительно, сейчас все богатые

Randajad, позволь вопрос - ты зарабатываешь программированием? Если да, то за свой труд ты бы хотел получать деньги? Почему же давит жаба оплатить труд других программистов, результатами которого ты пользуешься для своего заработка?
 Да и касательно использования опенсор для своей коммерции borisbn уже сказал. Просто до версии 4.5. наша фирма именно коммерческую лицензию покупала - вот я и по инерции - но суть таже.

Цитата(Randajad @  11.6.2012,  06:32 Найти цитируемый пост)
Реализуя какой-нибудь алгоритм в своем приложении вы так же мыслите, позвольте поинтересоваться? 

Зависит от "контекста" задачи (ТЗ, сроки выполнения и т.д.)

Цитата(boostcoder @  11.6.2012,  09:27 Найти цитируемый пост)
ибо запрещает шаблоны

разве? Спокойно юзаю шаблоны по мере необходимости.

Это сообщение отредактировал(а) _GRIN_ - 11.6.2012, 23:37


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
boostcoder
Дата 11.6.2012, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(_GRIN_ @  11.6.2012,  23:08 Найти цитируемый пост)
юзаю шаблоны по мере необходимости

значит твоя необходимость мала.

PM WWW   Вверх
_GRIN_
Дата 11.6.2012, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



Цитата(boostcoder @  11.6.2012,  21:13 Найти цитируемый пост)
значит твоя необходимость мала.

Вполне возможно, но мне хватает (шаблонные классы, шаблонные методы, шаблонные функции).

boostcoder, а можно пример кода (не зависимого от какой-либо библиотеки) содержий шаблон, который QtCreator не осилит?
Признаться очень интересно посмотреть.

Это сообщение отредактировал(а) _GRIN_ - 11.6.2012, 23:18


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
alexvs11
Дата 11.6.2012, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 2
Всего: 10



Цитата(_GRIN_ @  11.6.2012,  23:17 Найти цитируемый пост)
а можно пример кода (не зависимого от какой-либо библиотеки) содержий шаблон, который QtCreator не осилит?

все-таки который MOC не осилит
PM MAIL   Вверх
boostcoder
Дата 11.6.2012, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(_GRIN_ @  11.6.2012,  23:17 Найти цитируемый пост)
а можно пример кода (не зависимого от какой-либо библиотеки) содержий шаблон, который QtCreator не осилит?

закодь любой класс наследник QObject, и сделай его частичную специализацию основываясь на компайл-тайм типах/константах. тут-то moc скажет, что он о тебе думает smile

Добавлено @ 23:33
хотя я удивлен тому, что кто-то этого не знает.
признаюсь, с использованием Qt не кодил уже больше двух лет. возможно moc пофиксили... но очень сомневаюсь. иначе его бы пришлось научить специализировать шиблоны и генерить GIMPLE. а это наверное половина компилятора.

Добавлено @ 23:37
а в качестве сигналов/слотов, он уже позволяет использовать шаблонные методы/функции/функциональные_объекты/лямбды?


Это сообщение отредактировал(а) boostcoder - 11.6.2012, 23:38
PM WWW   Вверх
_GRIN_
Дата 11.6.2012, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



Цитата(boostcoder @  11.6.2012,  21:28 Найти цитируемый пост)
закодь любой класс наследник QObject, и сделай его частичную специализацию основываясь на компайл-тайм типах/константах. тут-то moc скажет, что он о тебе думает 


такой пример (из одного моего работающего на местах) проекта подойдёт:
Код

template <class TServerItem>
class CComplectT : public QWidget
{
public:
    CComplectT(QObject* core,const QString&name,CAbstractView*parent) :
        QWidget(parent),
        m_parent(parent),m_core(qobject_cast<CGuiLogic*>(core)),m_name(name)
    {
        Q_ASSERT(m_core);
        Q_ASSERT(m_parent);
        m_grid = new QGridLayout(this);
        m_grid->setContentsMargins(2,4,2,2);
        m_grid->setSpacing(2);
        setPrivate();
    }
    virtual ~CComplectT(){}

protected:
    void setPrivate()
    {
        qtutil::safeClearMapOfPointers<ADP_TF_UID,CAbstractViewItem>(m_servers);
        Q_ASSERT(m_core->complects().contains(m_name));
        foreach(ADP_TF_UID uid,m_core->complects().value(m_name)) {
            CAbstractViewItem*server = new TServerItem(uid,m_core,this);
            connect(server,SIGNAL(evShow(ads::ADP_TF_UID)),m_parent,SIGNAL(evShow(ads::ADP_TF_UID)));
            m_grid->addWidget(server,0,m_servers.count());
            m_servers[uid] = server;
        }
    }

protected:
    CAbstractView* m_parent;
    CGuiLogic* m_core;
    QMap<ADP_TF_UID,CAbstractViewItem*>m_servers;
    const QString m_name;
    QGridLayout*m_grid;
};


тут правда шаблон нужен только в методе setPrivate() и там только конструктор шаблона с параметрами вызывался.
Но ничего другого под рукой нет к сожалению.

З.Ы. Я всё ещё достаточно плохо знаю кьют. Так что действительно посмотрел бы на ваш код илюстрирующий проблему.
Единтвенное ограничение, которое я знаю - это запрет множественного наследования qobject классов.

Добавлено через 5 минут и 11 секунд
Цитата(alexvs11 @  11.6.2012,  21:25 Найти цитируемый пост)
все-таки который MOC не осилит 

alexvs11, ваше замечание абсолютно верно =).
Мос имеет свои ограничения, и свои плюсы (сигналы слоты).
Сам по себе кьют использует moc для сигналов слотов. Если эти плюсы не нужны, то можно спокойно забить на moc и использовать кьют без генерации moc-файлов как обычно - просто не объявляйте Q_OBJECT (правда и без сигналов-слотов останетесь)


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
alexvs11
Дата 11.6.2012, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 2
Всего: 10



Цитата(boostcoder @  11.6.2012,  23:28 Найти цитируемый пост)
а в качестве сигналов/слотов, он уже позволяет использовать шаблонные методы/функции/функциональные_объекты/лямбды?

так как посылать/принимать сигналы могут только наследники QObject (вроде не только, но там с какими-то извращениями), то из этого списка вопрос только о шаблонных методах
http://doc.trolltech.com/qq/qq15-academic.html
думаю, что и сейчас невозможно

Цитата(boostcoder @  11.6.2012,  23:28 Найти цитируемый пост)
хотя я удивлен тому, что кто-то этого не знает.

видимо это достаточно редко требуется на практике?
PM MAIL   Вверх
Страницы: (5) Все 1 2 [3] 4 5 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1030 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.