LINUX.ORG.RU

Qt 4.4

 ,


0

0

На сайте Trolltech стала доступна для загрузки новая версия этого замечательного кросс-платформенного тулкита для разработки приложений.

Из нововведений:

  • Теперь - под GPLv3.
  • Встроенная поддержка мультимедийного движка Phonon и веб-движка WebKit.
  • Поддержка новых платформ: Windows CE и Embedded Linux.
  • Улучшенная система помощи QHelpSystem на замену устаревшему Assistant.
  • Поддержка мультипоточности (Concurrency Framework) без необходимости внедрения дополнительных примитивов в программу.
  • Поддержка виджетов в QGraphicsView. Пример применения: http://tinyurl.com/4l3zu4.
  • Улучшения работы с XML (поддержка стандартов XQuery 1.0 и XPath 2.0).
  • Новые возможности межпрограммного взаимодействия, с фокусировкой на общее использовании памяти (shared memory).
  • Переделана системы управления печатью.
  • Локализация на испанский и традиционный китайский.

В KDE 4.1 будет использоваться именно эта версия Qt.

Официальной новости пока нет, есть список изменений для разработчиков: http://trolltech.com/developer/notes/...
Также несколько интересных нововведений рассмотрено в официальном обзоре RC1: http://trolltech.com/products/qt/what...

>>> Загрузка исходников

★★★★★

Проверено: Tima_ ()
Последнее исправление: cetjs2 (всего исправлений: 1)

Ответ на: комментарий от wfrr

> А подробнее или как с гстримером ?

Пожалуйста: wiki, generic function

> Есть мнение что вышеперичесленные "неотьемлемые части ООП" ненужны. Ибо отсутствие типизации тоже какбэ улучшает абстракцию.

Есть мнение, что сам Страуструп очень сильно хотел иметь дженерики в c++0x, но не срослось у них что-то там.

А по поводу скорости работы, то С++ как-то выделяется из толпы, потому что у него нет ничего такого, что на эту скорость могло отрицательно повлиять. И т.к. скорость сейчас далеко не всем и не везде нужна, то мы и наблюдаем постепенное отмирание плюсов. Вот в SBCL тоже вполне себе приемлемый компилятор, пока дела не касается CLOS, который просто невозможно соптимизировать за счёт минимизации кода.

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

Вы говорите о плагине, который должен разбираться с проблемами ввода вывода? Или тащить за собой мультимедийный фреймворк?

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

Re^6: Qt 4.4

>>а нафиг это вообще реализовывать?

> это называется HIG'анутый Способ Мышления

>>Кому оно мешает? Наиболее оптимальное решение - отключить прорисовывание окна в момент ресайза.

> А у тебя такого правильного никто не будет спрашивать, как ему лично настроить _свой_ DE. Юзай свои тормозные и глючные костыли в гордом одиночестве, или в компании таких же аутистов, как ты.

я считаю, что тролльтеховцы пошли неправильнам путем. А именно надо было просто послать латентоидов, требующих перделок нафиг. А не ломать устоявшиеся системы из-за каких-то тормозов при ресайзе и включенном отображении. Нафиг оно вообще нужно? Любоваться? Ресайз должен делаться для перераспределения места на рабочем столе. И для этого необходимо и достаточно видеть только _границы_ окна.

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

>Пожалуйста: wiki, generic function

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

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

Вы из другой вселенной? Скорость нужна везде рождаются монстры, пессимизировать тоже не рекомендуется.

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

> соптимизировать

Самое мощное средство оптимизации это клавиша Delete. (C) Кен Томпсон :)

Bohtvaroh ★★★★
()
Ответ на: Re^6: Qt 4.4 от dikiy

>я считаю, что тролльтеховцы пошли неправильнам путем.

Я рад что вы высказались, а теперь дайте мне полюбоваться компизом, а не тормозами иксов и квадратным интерфейсом fwwm.

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

> А в каком языке с приличным оптимизирующим компилятором есть вся эта никому не нужная (по большому счету) х*ета?

Obj-C++ ? :)

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

Re^8: Qt 4.4

>>я считаю, что тролльтеховцы пошли неправильнам путем.

> Я рад что вы высказались, а теперь дайте мне полюбоваться компизом, а не тормозами иксов и квадратным интерфейсом fwwm.

любуйся. позволяю.

dikiy ★★☆☆☆
()
Ответ на: Re^6: Qt 4.4 от dikiy

> И для этого необходимо и достаточно видеть только _границы_ окна

Чушь полнейшая. Ресайз окна делается, чтобы увеличить размер компонентов внутри этого окна а не какие-то там границы. При ресайзе одним виджетам свойственнен EXPAND, другим FILL, третьим и то, и другое, четвёртые вообще не меняют размера. И почти всегда это поведение необходимо видеть.

Ещё раз для закрепления материала: изменение размеров окна не есть самоцель, цель - масштабирование компонентов интерфейса внутри этого окна.

Bohtvaroh ★★★★
()
Ответ на: Re^8: Qt 4.4 от dikiy

Ну спасибо, автоматически вы согласились что тролльтеховцы идут верным путем. А снобы могут отключить в настройках куте "показывать содержимое".

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

Re^8: Qt 4.4

>> И для этого необходимо и достаточно видеть только _границы_ окна

> Чушь полнейшая. Ресайз окна делается, чтобы увеличить размер компонентов внутри этого окна а не какие-то там границы. При ресайзе одним виджетам свойственнен EXPAND, другим FILL, третьим и то, и другое, четвёртые вообще не меняют размера. И почти всегда это поведение необходимо видеть.

зачем это видеть?? Ты думаешь, что компоненты буду менять по другому свои размеры под твоим цепким взглядом?

> Ещё раз для закрепления материала: изменение размеров окна не есть самоцель, цель - масштабирование компонентов интерфейса внутри этого окна.

Это уже как следствие. Все равно ты не можешь на это повлиять. А значит и не имеет смысла наблюдать в "динамике".

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

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

Ну давайте я вам сюда кусок скопирую, раз сами не можете прочитать:

In certain systems for object-oriented programming such as the Common Lisp Object System and Dylan, a generic function is an entity made up of all methods having the same name.

Generic functions correspond roughly to what Smalltalk calls messages; but when a generic function is called, method dispatch occurs on the basis of all arguments, not just a single privileged one. See under multiple dispatch for more. This is also known as a multimethod.

А вот почему такого не может быть в C++:

Multiple dispatch differs from overloading in C++ in that it takes place at run time, on the dynamic types of the arguments, rather than at compile time and on the static types of the arguments.

> Вы из другой вселенной? Скорость нужна везде рождаются монстры, пессимизировать тоже не рекомендуется.

Скорость нужна там, где она действительно нужна. Если bottleneck'ом является пропускная способность сети, то хоть заоптимизируйтесь всё остальное, работать быстрее не будет. К тому же, на относительно низкоуровневых ЯП нельзя или очень трудно решить задачи с высоким уровнем абстракции.

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

Re^10: Qt 4.4

> Ну спасибо, автоматически вы согласились что тролльтеховцы идут верным путем. А снобы могут отключить в настройках куте "показывать содержимое".

проблема не в самом факте, а в том, что за этим последует. А за этим последуют: серия новеньких багов, раскол системы, неоправданное усложнение самого Qt, возможны также проблемы с совместимостью (в широком смысле слова).

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

> Есть мнение, что сам Страуструп очень сильно хотел иметь дженерики в c++0x, но не срослось у них что-то там.

http://en.wikipedia.org/wiki/Template_(programming)

Templates support generic programming in C++.

Java's adoption of generics mimics the behavior of templates, but is technically very different.

Displacer ★★
()
Ответ на: Re^8: Qt 4.4 от dikiy

Специально для тебя пример.

Открываем в Gimp рисунок, который чуть-чуть не влезает в размер окна. Масштабировать изображение я не хочу, так как хочу, чтобы всё было чётко 1:1. Теперь, насколько мне увеличить размер окна гимпа, чтобы рисунок влез полностью? Телепатически прищуриться, скрестить пальцы и надеяться, чтоб после того, как я закончу ресайз окна с изображением (которое какого-то хрена пропало при ресайзе (!!!) ), это самое изображение таки влезет в границы? В общем, не тупи, придумывая хаки а-ля виндовс-98.

Bohtvaroh ★★★★
()
Ответ на: Re^10: Qt 4.4 от dikiy

>, а в том, что за этим последует. А за этим последуют: серия новеньких багов, раскол системы, неоправданное усложнение самого Qt, возможны также проблемы с совместимостью (в широком смысле слова).

И конец света как последствие индустриализации. Вы телепат? Java давно уже себя так ведет, по словам гика гтк также и ничего все живы и совмещаются.

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

None of the advanced templates features relied on by libraries such as Boost or even the STL for template metaprogramming (explicit or partial specialization, default template arguments, template non-type arguments, template template arguments, ...) are available with generics.

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

Re^12: Qt 4.4

>>, а в том, что за этим последует. А за этим последуют: серия новеньких багов, раскол системы, неоправданное усложнение самого Qt, возможны также проблемы с совместимостью (в широком смысле слова).

> И конец света как последствие индустриализации. Вы телепат? Java давно уже себя так ведет, по словам гика гтк также и ничего все живы и совмещаются.

хреново.

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

Re^10: Qt 4.4

> Специально для тебя пример.

> Открываем в Gimp рисунок, который чуть-чуть не влезает в размер окна. Масштабировать изображение я не хочу, так как хочу, чтобы всё было чётко 1:1. Теперь, насколько мне увеличить размер окна гимпа, чтобы рисунок влез полностью? Телепатически прищуриться, скрестить пальцы и надеяться, чтоб после того, как я закончу ресайз окна с изображением (которое какого-то хрена пропало при ресайзе (!!!) ), это самое изображение таки влезет в границы? В общем, не тупи, придумывая хаки а-ля виндовс-98.

а кто сказал, что оно пропадет? просто появится сетка (а-ля enlightment) и ты четко подведешь линию на границу твоей картинки. И все.

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

> А вот почему такого не может быть в C++:

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

>Скорость нужна там, где она действительно нужна.

Из-за таких как вы теперь ноут с 1.7 ггц уже недокомпутер.

> Если bottleneck'ом является пропускная способность сети, то хоть заоптимизируйтесь всё остальное, работать быстрее не будет.

Поэтому вы протелепали смерть плюсам? Хехе.

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

mv, ты о чем вообще говоришь? Если ты говоришь о generics-ах из Java и C#, то они там в разы более убогие, чем templates в с++. Если же ты говоришь про функциональные языки, то тут и сравнивать то особо не с чем, на то они и функциональные языки.

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

> по словам гика гтк также

Кстати что-то здесь не так. Каждому виджету в gtk (ну за исключением какого-нить GtkLabel) ассоциируется свой GdkWindow. Подбробностей работы последнего я не знаю, но вроде бы там ассоциация с иксовым окном 1:1.

Очень хотелось бы услышать комментарии спецов. :)

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

Да, уж какая страница а гига все нет 8)

wfrr ★★☆
()
Ответ на: Re^10: Qt 4.4 от dikiy

>просто появится сетка (а-ля enlightment) и ты четко подведешь линию на границу твоей картинки. И все.

И уменьшении размера окна все , казалось бы свободное место, зохавает главное меню гимпа, которое вздумало свернуться в две строки.

wfrr ★★☆
()
Ответ на: Re^12: Qt 4.4 от dikiy

Кстати, у меня тут enlightenment E17, никаких извращений с сеткой нету. А ресайз гуёв на EFL чудовищно быстрый. |-)

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

> Блин, тоже что я вам и говорил, но в клизьпе есесно реализованно с динамической типизацией,

Как связаны типизация и множественная диспетчеризация?

> потому тормоза и глюки, ну и чем гордитесь? Кроме того вы опять взялись за свои частные случаи, смотрите шире.

Перечислите пару глюков в Allegro или LispWorks, которые вам лично мешают. Ну или хотя бы мешают паре контор из TOP100, которые эти Allegro и LispWorks используют.

> Из-за таких как вы теперь ноут с 1.7 ггц уже недокомпутер.

И что я лично для этого сделал?

> Поэтому вы протелепали смерть плюсам? Хехе.

Потому что плюсы отстали от поезда.

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

>Как связаны типизация и множественная диспетчеризация?

Реализация диспетчиризации в си++ из приведенного вами текста затруднена из-за статической типизации си++?

>Перечислите пару глюков

Если я передам функции аргумент м неожиданным типом то будет касяк.

>И что я лично для этого сделал?

Превозносите писать тормознутые программы на тормознутых языках.

>Потому что плюсы отстали от поезда.

Вы не из мс, а похоже, они тоже так говорят, ибо наварится на железе с плюсами тяжело да и индусов тошнит от крестиков.

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

>Кстати что-то здесь не так. Каждому виджету в gtk (ну за исключением какого-нить GtkLabel) ассоциируется свой GdkWindow. Подбробностей работы последнего я не знаю, но вроде бы там ассоциация с иксовым окном 1:1.

GdkWindow - да, ассоциации с окном X11 - нет. Курить GTK_NO_WINDOW

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

>Теперь, насколько мне увеличить размер окна гимпа, чтобы рисунок влез полностью?

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

тред какой-то душевный, читаю душа радуется)

наверное вин-тролей не хватает и линдузятников)

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

> а вот реализация на С++

Я такие "мультиметоды" и на Си реализую. Даже с рантаймовостью. Но это не будет значить, что в Си есть дженерик-функции (мультиметоды)

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

> а вот реализация на С++

И вообще, таких ретроспекций, встроенных в класс маршаллеров и АОП для C++, как говна. Только всё это фейк.

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

>Я такие "мультиметоды" и на Си реализую. Даже с рантаймовостью. Но это не будет значить, что в Си есть дженерик-функции (мультиметоды)

Нет именно , это означает что они есть.

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

> Реализация диспетчиризации в си++ из приведенного вами текста затруднена из-за статической типизации си++?

Я url на статью Страуструпа дал про мультиметоды, ещё не читали?

> Если я передам функции аргумент м неожиданным типом то будет касяк.

Это косяк? То же самое будет с плюсами. Передать не то, что надо, можно и в плюсах.

> Превозносите писать тормознутые программы на тормознутых языках.

Тормознутые программы пишут тормознутые программисты, языки программирования тут не при чём.

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

> Нюдя, такойже фейк это ООП в лиспе.

Тот факт, что CLOS написан на самом лиспе безо всяких изменений в компиляторе - это только плюс лиспу, такой вот он простой и мощный язык. Что не мешает скорости ради иметь реализацию CLOS прямо в компиляторе.

mv ★★★★★
()

Догоним и перегоним тред про Ганса Рейзера!

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

> GdkWindow - да, ассоциации с окном X11 - нет. Курить GTK_NO_WINDOW

Спасибо, посмотрел. Раньше почему-то не обращал внимания.

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

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

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

Вы же сказали, что их сами реализовать можете.

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