LINUX.ORG.RU

Qt 4.2 Release!


0

0

Пришло сегодня в рассылке. Спустя месяц после релиз-кандидата вышла новая версия кросс-платформенного GUI-и-не-только тулкита Qt 4.2!

Изменений много, вот некоторые из них:

- Добавлен Graphics View framework, заменяющий собой модуль QCanvas из Qt3.

- Добавлен стиль Cleanlooks, позволяющий Qt4-приложениям вписываться в GNOME-окружение.

- Для этих же целей в классе QDialogButtonBox предусмотрена возможность располагать кнопки в соответствии со стандартным расположением кнопок в используемом ДЕ.

- Класс QCompleter, обеспечивающий возможности автодополнения текста в соответствующих виджетах.

- Модуль QtDBus, обеспечивающий взаимодействие между процессами на платформах, поддерживающих d-bus.

- Оформление внешнего вида виджетов при помощи таблиц стилей, схожих по синтаксису с CSS.

- А также многое, много другое....

Полный список изменений можно увидеть здесь: http://www.trolltech.com/developer/no...

>>> Более подробно о нововведениях

★★★★

Проверено: Pi ()

QT плох своим весом + под win32 довольно кривая поделка, которая ещё и mingw тянет%) довольно большие слонопотамы будут получаться, а с GTK в этом плане дела обстоят куда уж лучше:P но не спорю что GTK не очень удобен, ПООП всё таки даётся в знак=\ (хотя если на С кодить - в самый раз)

slav0nic
()
Ответ на: комментарий от slav0nic

> довольно кривая поделка

В чём кривость? Как раз таки виндовая Qt работает и выглядит на ура, в отличие от GTK+.

> которая ещё и mingw тянет

Вы таки уже научились собирать софт без компилятора? %-O

> довольно большие слонопотамы будут получаться

Дададададад, 10 метров DLLек - это аццкое сборище слонопотамов. А знаете ли вы, сколько занимает GLIB + GTK + GLADE + gettext + что там ему ещё надо?

ero-sennin ★★
()
Ответ на: комментарий от anonymous

> А насколько будет отличаться оплата при написании на C++ и в машинных кодах? Как я понимаю, отличий особых быть не должно, ибо, как сказано выше, "сложность кода в первую очередь зависит не столько от выбранного метода, сколько от поставленной задачи"? И затраты времени, очевидно, будут примерно одинаковы?

предлагаю конкретное ТЗ на разработку, сроки и форму и размеры оплаты перенести в приватную беседу.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

> Предлагаешь дизайнер писать в дизайнере?

Большинство диалогов в нем так и сделаны.

> Интерфейс дизайнера довольно прост.

Назови программу со сложным. Разберем, как там реализовано.

> А вот для объёмных интерфейсов разумнее использовать автоматизацию, чем пыхтеть, изобретая всё вручную.

Создание интерфейсов в дизайнере -- это автоматизация?

amm
()
Ответ на: комментарий от slav0nic

> QT плох своим весом + под win32 довольно кривая поделка, которая ещё и mingw тянет%)

вообще то, GPLный Qt4 под Win32 прекрасно собирается например всеми любимым MSVC .Net 2003 и естественно не тянет за собой никакого mingw. полученный код без проблем работает в WinXP и почти в два раза меньше, чем код, собранный mingw. описание процесса можно найти тут:

http://qtnode.net/wiki/Qt4_with_Visual_Studio

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от amm

>> Интерфейс дизайнера довольно прост.
> Назови программу со сложным. Разберем, как там реализовано.

да что там особо разбирать то, AFAIU с точки зрения оппонента сложный интерфейс упирается в сотню-другую кнопок и ему проще накидать их на форму в дизайнере, чем сделать for (int i = 0; i < 100; i++) { createButton(); }. ну нравится человеку дизайнер и слава богу, какие проблемы.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

> да что там особо разбирать то, AFAIU с точки зрения оппонента сложный интерфейс упирается в сотню-другую кнопок и ему проще накидать их на форму в дизайнере, чем сделать for (int i = 0; i < 100; i++) { createButton(); }.

Если так, да еще в дизайнере, то действительно такой интерфейс простым не назовешь. :)

> ну нравится человеку дизайнер и слава богу, какие проблемы.

Я тоже не против дизайнеров интерфейсов, но их задача -- это простенькие диалоги или каркасы, в которых все-равно основная работа будет в коде.

amm
()
Ответ на: комментарий от slav0nic

> QT плох своим весом

И сколько же он весит-то? Чё, намного больше, чем порт GTK?

> + под win32 довольно кривая поделка

Ахренеть. А мои заказчики как-то до сих пор этого не заметили.

> которая ещё и mingw тянет%)

Куда тянет? Установить mingw - не проблема. А в runtime приложение будет требовать один маленький файлик mingwm10.dll размером 14843 bytes. Просто ужоснах, правда? С ёопаным дотнетом или жабой - просто никакого сравнения.

anonymous
()
Ответ на: комментарий от slav0nic

> QT плох своим весом + под win32 довольно кривая поделка, которая ещё и mingw тянет%) довольно большие слонопотамы будут получаться

Расскажи это опере.

Да, писать маленькую шароварную перделку на Qt под винду я бы не стал - нет смысла. Qt лучше использовать для более или менее среднего/крупного кроссплатформенного проекта.

> с GTK в этом плане дела обстоят куда уж лучше:

Я для заказчика пишу всё на Qt. Поэтому я просто скопировал ему в c:\Qt\4.1.4 (ну, и настроил переменные среды) ВСЕ файлы qt, которые могут понадобиться в runtime. Это заняло ровно 9.765.059 байт. ВСЁ. Всё, что я пишу, - qt shared, маленькое и компактное. И никаких проблем.

anonymous
()
Ответ на: комментарий от klalafuda

>> А насколько будет отличаться оплата при написании на C++ и в машинных кодах? Как я понимаю, отличий особых быть не должно, ибо, как сказано выше, "сложность кода в первую очередь зависит не столько от выбранного метода, сколько от поставленной задачи"? И затраты времени, очевидно, будут примерно одинаковы?

> предлагаю конкретное ТЗ на разработку, сроки и форму и размеры оплаты перенести в приватную беседу.

Я понял. Клалафуда снова неуклюже пытается уйти от прямого ответа, прикидываясь идиотиком с текущими изо рта соплями.

Вот тебе ТЗ: GUI текстовый редактор (plain text, но с выбором кодировки при открытии), без табов или подокон. Меню: File (Open, Save, Save As, Close, Exit), Edit (Undo, Redo, Copy, Paste, Cut, Delete, Set encoding, Select All), Search (Find, Find again, Replace, Set font), Help (Help Topics, About) под венду или линукс - выбирай сам. Диалоги поиска/замены - с case sensitive, backward/forward, entire word. Внизу - строка состояния с номером строки, столбца и инфой и размере текста в словах, строках и символах. Больше я ничего не требую. Итак: сколько времени и денег тебе потребуется на написание на C++ и в машкодах. Вперёд.

anonymous
()
Ответ на: комментарий от amm

> Создание интерфейсов в дизайнере -- это автоматизация?

Ещё какая. Я кладу кнопку на окошко и быстро меняю нужные свойства. Я НЕ ВВОЖУ КОД.

anonymous
()
Ответ на: комментарий от klalafuda

> вообще то, GPLный Qt4 под Win32 прекрасно собирается например всеми любимым MSVC .Net 2003 и естественно не тянет за собой никакого mingw. полученный код без проблем работает в WinXP и почти в два раза меньше, чем код, собранный mingw. описание процесса можно найти тут:

Лицензию GPL читать приходилось?

Давай-ка простенький исходник на qt. Ты соберёшь его в MSVC, а я - mingw. Потом оба выложим exeшники и сравним размеры. Готов?

anonymous
()
Ответ на: комментарий от anonymous

> Лицензию GPL читать приходилось?

а причем тут собственно GPL?

> Давай-ка простенький исходник на qt. Ты соберёшь его в MSVC, а я - mingw. Потом оба выложим exeшники и сравним размеры. Готов?

пожалуйста, исходник на ваш выбор.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

> пожалуйста, исходник на ваш выбор.

ps: размер будем считать как собственно исполняемый + необходимые для него qt-шные библиотеки. например, foo.exe + qtcore.dll

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

> ps: размер будем считать как собственно исполняемый + необходимые для него qt-шные библиотеки. например, foo.exe + qtcore.dll

%QTDIR%\examples\dialogs\findfiles

Каждый выкладывает ВСЕ необходимые файлы, чтобы запустить приложение под голой виндой, где Qt и компилятор не установлены.

anonymous
()
Ответ на: комментарий от anonymous

> Вот тебе ТЗ: GUI текстовый редактор (plain text, но с выбором кодировки при открытии) без табов или подокон. Меню: File (Open, Save, Save As, Close, Exit), Edit (Undo, Redo, Copy, Paste, Cut, Delete, Set encoding, Select All), Search (Find, Find again, Replace, Set font), Help (Help Topics, About)

вполне нормальные требования к редактору, согласен. хотя назначение "Set font" в "Search" мне не понятно, но это утрясается.

> под венду или линукс - выбирай сам.

очевидно, что под win32. конкретный ассемблер на мой выбор.

> Диалоги поиска/замены - с case sensitive, backward/forward, entire word. Внизу - строка состояния с номером строки, столбца и инфой и размере текста в словах, строках и символах. Больше я ничего не требую.

согласен

> Итак: сколько времени и денег тебе потребуется на написание на C++ и в машкодах.

что на C++ и на ассемблере - одна рабочая неделя (5 дней, 8 часов). всего 40. оплата - $30USD/час. итого, $1200USD а каждую из версий.

> Вперёд.

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

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

>> Создание интерфейсов в дизайнере -- это автоматизация?

> Ещё какая. Я кладу кнопку на окошко и быстро меняю нужные свойства. Я НЕ ВВОЖУ КОД.

Я даже не знаю, смеятся нужно или плакать.

amm
()
Ответ на: комментарий от amm

> Я даже не знаю, смеятся нужно или плакать.

Можешь поплакать над отсутствием у себя логики и непреодолимыми стереотипами, с которыми ты боишься расстаться. Но всё же попробую разжевать: код создаётся АВТОМАТИЧЕСКИ. Начинает потихоньку доходить или ещё нет?

anonymous
()
Ответ на: комментарий от klalafuda

> вполне нормальные требования к редактору, согласен. хотя назначение "Set font" в "Search" мне не понятно, но это утрясается.

Я ошибся. Он будет в Edit.

> очевидно, что под win32. конкретный ассемблер на мой выбор.

Ты, наверно, не понял. Я написал "машинные коды", а не "ассемблер". Ты в ВУЗе учился? Там объясняли, в чём разница? Или мне показать, где это написано в интернете?

> что на C++ и на ассемблере - одна рабочая неделя (5 дней, 8 часов). всего 40. оплата - $30USD/час. итого, $1200USD а каждую из версий.

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

anonymous
()
Ответ на: комментарий от anonymous

> Вы, похоже, некомпетентны, простите. На c++ это можно написать гораздо быстрее. Собственно, похожая задача является одним из заданий на некоторых экзаменах. Я сомневаюсь, что экзаменуемые страдают над ней неделю. Вы не сдали экзамен.

как вам будет угодно. берите студентов и пишите, никаких проблем.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

> Ты, наверно, не понял. Я написал "машинные коды", а не "ассемблер". Ты в ВУЗе учился? Там объясняли, в чём разница? Или мне показать, где это написано в интернете?

btw в машинных кодах это займет то-же время, но будет в несколько раз дороже. просто за эксклюзив.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от amm

>Создание интерфейсов в дизайнере -- это автоматизация?

Ты вообще с QtDesigner работал? Если да, то вопрос следующий: ты знаешь что происходит с .ui файлом при компиляции? Не замечал, что у тебя появляются файлы, которых ты не создавал, которые генерятся автоматически? Поинтересуйся при случае....

MYMUR ★★★★
() автор топика
Ответ на: комментарий от amm

> А интерфейс рисуется вручную. И в чем автоматизация создания интерфейсов?

Вроде бы уже объяснил... Ну хорошо, сделаю это ещё раз. Автоматизация написания КОДА. Код пишется не юзером. При написании кода вероятность наделать ошибок куда выше, чем при переносе кнопочки на форму мышью и gui-ориентированном задании её свойств. Так понятнее?

anonymous
()
Ответ на: комментарий от klalafuda

> btw в машинных кодах это займет то-же время, но будет в несколько раз дороже. просто за эксклюзив.

Сурьёзно? Вы помните наизусть все машинные коды x86 или какого-то другого? Нет, правда?

anonymous
()
Ответ на: комментарий от anonymous

> Сурьёзно? Вы помните наизусть все машинные коды x86 или какого-то другого? Нет, правда?

arm более-менее, x86 уже наверное нет. но вспомнить не проблема.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

>>>> вообще то, GPLный Qt4 под Win32 прекрасно собирается например всеми любимым MSVC .Net 2003 и естественно не тянет за собой никакого mingw. полученный код без проблем работает в WinXP и почти в два раза меньше, чем код, собранный mingw.

>>> Давай-ка простенький исходник на qt. Ты соберёшь его в MSVC, а я - mingw. Потом оба выложим exeшники и сравним размеры. Готов?

>> пожалуйста, исходник на ваш выбор.

>> ps: размер будем считать как собственно исполняемый + необходимые для него qt-шные библиотеки. например, foo.exe + qtcore.dll

> %QTDIR%\examples\dialogs\findfiles

> Каждый выкладывает ВСЕ необходимые файлы, чтобы запустить приложение под голой виндой, где Qt и компилятор не установлены.

Ну чё, как там? Прогресс есть?

anonymous
()
Ответ на: комментарий от MYMUR

Гхм. Мне казалось, в kde есть аналог libglade? Я ошибался? Можно использовать файлы .ui динамически, прямо из программы - или обязательно из них генерить плюсовый код?

svu ★★★★★
()
Ответ на: комментарий от anonymous

> Ну чё, как там? Прогресс есть?

у меня в сущьности аналогичный вопрос. для MSVC .Net 2003 в варианте release это будет выглядить как:

-rwx------+ 1 foo foo 1490944 Oct 5 17:26 QtCore4.dll
-rwx------+ 1 foo foo 3227648 Oct 5 17:51 QtGui4.dll
-rwx------+ 1 foo foo 45056 Oct 5 17:52 findfiles.exe

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от svu

> Гхм. Мне казалось, в kde есть аналог libglade? Я ошибался? Можно использовать файлы .ui динамически, прямо из программы - или обязательно из них генерить плюсовый код?

imho - из них обязательно генерить плюсовый код.

anonymous
()
Ответ на: комментарий от klalafuda

> -rwx------+ 1 foo foo 3227648 Oct 5 17:51 QtGui4.dll

Потрудитесь мне объяснить, откуда взялся QtGui4.dll размером 3227648. Был скомпилен вместе с программой, судя по дате?

anonymous
()
Ответ на: комментарий от anonymous

> http://www.trolltech.com/developer/downloads/qt/windows
> Если есть ещё вопросы, задавайте, не стесняйтесь.

и в чем собственно проблема? что Open Sources Edition из коробки поддерживает лишь mingw? да, это так. ну и что? после наложения соотв. патча 4.1.4 прекрасно собирается родным MSVC без всякого mingw. как уже было сказано выше, описание тут: http://qtnode.net/wiki/Qt4_with_Visual_Studio

или вы считаете, что GPL запрещает накладывать на него патчи и собирать MSVC?

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

> Потрудитесь мне объяснить, откуда взялся QtGui4.dll размером 3227648. Был скомпилен вместе с программой, судя по дате?

только что пересобрал бо моя старая сборка почему-то не содержала .lib -> link отказывался собирать исполняемые. все собрано в release включая библиотеки.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

> imho - из них обязательно генерить плюсовый код.

Получается, я в очередной раз думал о КДЕ лучше, чем оно есть...

/me в очередной нос раздулся от гордости за родной гном;)

svu ★★★★★
()
Ответ на: комментарий от svu

> Получается, я в очередной раз думал о КДЕ лучше, чем оно есть... > /me в очередной нос раздулся от гордости за родной гном;)

Зря :) Есть в KDE (точнее сказать, даже в Qt) такая возможность. и в третьей, и в четвертой версии.

http://www.linuxcenter.ru/lib/books/qt3/qt3_6.phtml#DYNAMICDIALOGS

e_val ★★★
()
Ответ на: комментарий от ero-sennin

Ну ланн, тогда гордость оставлю в покое. По крайней мере, порадуюсь тому, что мои сведения оказались верными;)

svu ★★★★★
()
Ответ на: комментарий от MYMUR

2 MYMUR * (*) (05.10.2006 14:39:00) & 2 anonymous (*) (05.10.2006 14:39:19)

> Ты вообще с QtDesigner работал? Если да, то вопрос следующий: ты знаешь что происходит с .ui файлом при компиляции? Не замечал, что у тебя появляются файлы, которых ты не создавал, которые генерятся автоматически? Поинтересуйся при случае....

То есть выкрутились? Замечание про 100 кнопок замяли, скатились с генерации интерфейсов на генерацию кода.

Похоже, у нас просто разные понятия об автоматизации.

amm
()
Ответ на: комментарий от e_val

Кстати, а как ОБЫЧНО делается в кде - генерируется код или используется .ui? В гноме код уже очень давно никто не генерит - все через libglade.

svu ★★★★★
()
Ответ на: комментарий от svu

> Кстати, а как ОБЫЧНО делается в кде - генерируется код или используется .ui? В гноме код уже очень давно никто не генерит - все через libglade.

Обычно - .ui конвертируется в C++, а меню и тулбары хранят в XML. Логика примерно такая: достаточно редко конечному пользователю нужно изменять вид диалога (и еще реже - изменять так, чтобы при этом не пришлось дописывать код-обработчик новых элементов), а вот что попадает в меню и на тулбары иногда хочется кастомизировать.

e_val ★★★
()
Ответ на: комментарий от svu

>Можно использовать файлы .ui динамически, прямо из программы - или обязательно из них генерить плюсовый код?

Можно и динамически, но там несколько другой механизм. "По дефолту" же используется кодогенерация при компиляции.

MYMUR ★★★★
() автор топика
Ответ на: комментарий от svu

>Получается, я в очередной раз думал о КДЕ лучше, чем оно есть..

Вот так и рождаются мифы... =)

MYMUR ★★★★
() автор топика
Ответ на: комментарий от amm

>То есть выкрутились? Замечание про 100 кнопок замяли, скатились с генерации интерфейсов на генерацию кода.

Вы хоть немного следите, с кем и о чем ведете дискуссию? Мне "выкручиваться" было ни к чему, просто потому что я ничего не утверждал. Просто высказал свое мнение на тему "автоматизации создания интерфейсов".

Понятно, что при наличии 100 кнопок удобнее создавать их циклом в коде. А если в окне 20 виджетов 15-и разных видов, да еще и со всякими splitter-ами и прочими прелестями? Куда быстрее разместить их визуально, так же визуально растолкать по layout-ам, не вычерчивая схемы на бумаге и не держа расположение в уме, попутно отсчитывая координаты....

MYMUR ★★★★
() автор топика
Ответ на: комментарий от svu

>Кстати, а как ОБЫЧНО делается в кде - генерируется код или используется .ui? В гноме код уже очень давно никто не генерит - все через libglade.

Что-то мне подсказывает, что правильнее потратить процессорное время 1 раз при компиляции, чем каждый раз при запуске и работе программы =)

btw, такая возможность есть, если и правда нужен интерфейс с возможностью изменения. Кстати, не подкинете примерчик, когда это _действительно_ необходимо?

MYMUR ★★★★
() автор топика
Ответ на: комментарий от MYMUR

А мне что-то подсказывает, что потеря миллисекунд при запуске (при работе ничего не теряется, реально) - вполне окупается бОлее глубоким разделением дизайна интерфейса - и кода. Хотя, пожалуй, однозначного примера, когда это _действительно_ необходимо - я не дам навскидку. Есть только спинномозговое ощущение, что архитектурно это правильнее - не генерировать лишние сущности (промежуточные файлы с кодом) без необходимости. Но это ни разу не доказательство...

svu ★★★★★
()
Ответ на: комментарий от amm

> Замечание про 100 кнопок замяли, скатились с генерации интерфейсов на генерацию кода.

СТО кнопок???? Господи, как же я не завидую тем, кто будет пользовать Ваши "продукты"... В подавляющем большинстве случаев реальные формы содержать РАЗНЫЕ компоненты. И дизайнить их однозначно удобнее визуальными средствами - сразу видно, что получается. А не кодить, не видя результата. Писать текст на бумаге можно и с закрытыми глазами - но нужно ли?

> Похоже, у нас просто разные понятия об автоматизации.

А это, видимо, мне адресовалось. Моё понятие об автоматизации таково: Процесс освобождения человека от рутинного труда (здесь - тупое написание кода без творческой составляющей) путём передачи этой функции машинам. А Ваше?

anonymous
()
Ответ на: комментарий от svu

> А мне что-то подсказывает, что потеря миллисекунд при запуске (при работе ничего не теряется, реально)

Лишняя нагрузка на процессор, лишний разряд аккумулятора ноутбука. Абсолютно тупой и бессмысленный.

> вполне окупается бОлее глубоким разделением дизайна интерфейса - и кода.

Пользователю, простите, нас... ну, Вы поняли :)

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

Правильно. Лучше генерить лишние сущности, которые отнимают на себя процессорное время при КАЖДОМ запуске у клиента.

anonymous
()
Ответ на: комментарий от anonymous

Ну что за агрессивное стремление доказать: что A - есть хорошо, а B - есть плохо и должно умереть. Каждому инстурменту найдется свое применение. У меня, например, в планах (правда, не слишком близких) стоит разработка KDE-приложения, которое как раз будет хранить все интерфейсы в XML. Просто его единственная задача - запросить у пользователя некую информацию (заполнить поля ввода, выставить флажки), а потом передать ее дальше, по D-BUS. Здесь будет как раз удобно иметь один исполняемый файл и несколько вариантов наборов этих полей (в зависимости от типа запрашиваемой информации).

e_val ★★★
()
Ответ на: комментарий от anonymous

> Лишняя нагрузка на процессор, лишний разряд аккумулятора ноутбука. Абсолютно тупой и бессмысленный.

Люди, ТАК беспокоящиеся о циклах и аккумуляторах - запускают приложение один раз и никогда не выключают нотебяк - только вгоняют его в оцепенение;)

> Пользователю, простите, нас... ну, Вы поняли :)

Вообще, разговор был по поводу процесса РАЗРАБОТКИ и СБОРКИ. Если Вы пользователь - этот разговор вообще Вам должен быть ... ну, Вы поняли ;)

> Лучше генерить лишние сущности, которые отнимают на себя процессорное время при КАЖДОМ запуске у клиента.

Файл .glade не более лишняя, чем .ui. Других лишних сущностей, извините, не наблюдаю.

svu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.