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)

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

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

Нет а что? Реализацию вы же видели.

>Это косяк? То же самое будет с плюсами.

Там статическия типизация, или вы отвыкли в вашем лисьпе?

>Передать не то, что надо, можно и в плюсах.

Ага вот так?

int i,j;

strcpy(i,j);

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

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

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

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

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

>Я по теме отвечаю, в отличие от вас. А вы только передёргиваете.

Покажите.

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

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

>В лиспе библиотека расширяет возможности языка, в отличие от плюсов, где язык (компилятор) от программ жестко отделён.

Вы сами сказали, что:'Я такие "мультиметоды" и на Си реализую. Даже с рантаймовостью. ' - следовательно мультиметоды в C++ есть, и ваши высказывания о "Или вы за ООП на C++ радеете? Ну так оно там не самого лучшего качества." суть не более чем метан, а все ваши доводы не более чем фикция. И все это реализуется в C++.

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

>Плюсы не могут препятствовать передаче параметра не того типа

Честно говоря ни один язык программирования не может припятствовять этому т.к. ЦП не запрещает любые присваивания. Программист сам должен заботиться о своем коде а не компилятор иметь защиту от "дурака". Страуструп об этом писал в своей книге.

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

> Покажите.

Страничку 6 почитайте.

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

Статическая vs динамическая типизация - предмет другого спора. Как это обычно бывает, у обоих вариантов есть свои плюсы и минусы.

> Вы сами сказали, что:'Я такие "мультиметоды" и на Си реализую. Даже с рантаймовостью. ' - следовательно мультиметоды в C++ есть, и ваши высказывания о "Или вы за ООП на C++ радеете? Ну так оно там не самого лучшего качества." суть не более чем метан, а все ваши доводы не более чем фикция. И все это реализуется в C++.

Я уже писал, что при таком подходе С++ тоже не нужен, т.к. всё можно писать руками на Си или вообще на ассемблере. Но люди почему-то хотят синтаксический сахар прямо в языке. Вот в этом же треде люди что-то предъявляют против концепции GObject, который вручную делает ООП на языке без поддержки ООП?

В Лиспе (в Common Lisp'е, который стандарт ANSI) сахара гораздо больше, чем в С++. И легко этого сахара сделать ещё больше, потому что, например, выполнение кода можно организовать на этапе компиляции. Или генерировать код прямо на ходу. Или переопределить существующий код на новый. Представь, что С++ позволял бы (легко) подключать свои специфичные обработчики в парсере AST и расширять кодогенератор языка, хотя бы статически. И сколько это новых возможностей даёт.

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

>Там уже сейчас во всю mit-shm используется, не надо никого скрещивать

Как только DISPLAY у тебя станет не :0, внезапно XImage и Pixmap станут очень разными :)

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

> Страничку 6 почитайте.

Там видно как вы рассказываете об отсутствии хорошего ООП с С++.

>Я уже писал, что при таком подходе С++ тоже не нужен

Хаха, вы жжоте, си ненужен.

>т.к. всё можно писать руками на Си или вообще на ассемблере.

Так и в лиспе ООП написано руками, лисп получается ненужен.

>Но люди почему-то хотят синтаксический сахар прямо в языке.

Это сказки, сахар (сахар это например lambda в питоне, которая легко заменяется, но кастрирована) этот нужен быдлокодерам и когда надо набросать что-то _быстро_, С++ это не для быстро разработанных , а для быстрых приложений и производительных.

>Вот в этом же треде люди что-то предъявляют против концепции GObject, который вручную делает ООП на языке без поддержки ООП?

Ибо костыль, который нарушает принцип оккама, так это уже есть в С++.

> Представь, что С++ позволял бы (легко) подключать свои специфичные обработчики в парсере AST и расширять кодогенератор языка, хотя бы статически. И сколько это новых возможностей даёт.

И ошибок, и замедления, а при разработке браузе например это все нафиг не надо.

> Или генерировать код прямо на ходу.

Это метрапрограммирование но ортогонально ооп, а то вы скоро будете укорять си отсутствием хвостовой рекурсии и ленивости.

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

> Так и в лиспе ООП написано руками, лисп получается ненужен.

Ну а в плюсах вам ООП кто написал? Боги огнём на скрижалях вывели?

> С++ это не для быстро разработанных , а для быстрых приложений и производительных.

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

> Ибо костыль, который нарушает принцип оккама, так это уже есть в С++.

wfrr нарушает принцип Оккама, т.к. люди есть и без него.

> И ошибок, и замедления, а при разработке браузе например это все нафиг не надо.

Букварь Страуструпа каждый вечер читаешь, на иконку Александреску молишься?

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

Метапрограммирование ортогонально ООП? OMG. Я ухожу.

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

>Метапрограммирование ортогонально ООП? OMG. Я ухожу.

Выб на последок хоть кивипедию почитали, а то совсем замшели со своим лиспом:

>Метапрограммирование — создание программ, которые создают другие программы как результат своей работы (либо — частный случай — изменяющие или дополняющие себя во время выполнения). Метапрограммирование можно разделить на 2 направления: на стадии компиляции (генерация кода) и на стадии выполнения (самомодифицирующийся код).

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

>Ну а в плюсах вам ООП кто написал? Боги огнём на скрижалях вывели?

Ну и кто теперь превирает?

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

Ага, на лоре тоже попадаются вменяемые люди, только это не значит что лор не дурдом. Так что вы ничего не доказали, кроме того что неосиливаете плюсы.

>wfrr нарушает принцип Оккама, т.к. люди есть и без него.

Опять перевираете? Вам больше нечего сказать в защиту вашей точки зрения?

>Букварь Страуструпа каждый вечер читаешь, на иконку Александреску молишься?

О мой хвост, похоже вы сошли с ума.

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

>Метапрограммирование — создание программ, которые создают другие программы как результат своей работы (либо — частный случай — изменяющие или дополняющие себя во время выполнения). Метапрограммирование можно разделить на 2 направления: на стадии компиляции (генерация кода) и на стадии выполнения (самомодифицирующийся код).

Мой спинной мозг подсказывает, что в случае Qt - это утилита moc, что расшифровывается как meta object compiler. В данном случае она генерит код реализации сигналов-слотов на с++. А у того товарища, похоже, каша в голове ::))

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

> Выб на последок хоть кивипедию почитали, а то совсем замшели со своим лиспом:

Я вообще про расширение синтаксиса языка писал, а вы с метапрограммированием вылезли.

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

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

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

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

>>В лиспе библиотека расширяет возможности языка, в отличие от плюсов, где язык (компилятор) от программ жестко отделён.

>Вы сами сказали, что:'Я такие "мультиметоды" и на Си реализую. Даже с рантаймовостью. ' - следовательно мультиметоды в C++ есть, и ваши высказывания о "Или вы за ООП на C++ радеете? Ну так оно там не самого лучшего качества." суть не более чем метан, а все ваши доводы не более чем фикция. И все это реализуется в C++.

Си меньше мешает реализовать мультиметоды чем быдлоС++. В Си хотя бы не нужно мудохаться с указателями на метод класса.

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

> Мой спинной мозг подсказывает, что в случае Qt - это утилита moc, что расшифровывается как meta object compiler. В данном случае она генерит код реализации сигналов-слотов на с++. А у того товарища, похоже, каша в голове ::))

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

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

>нормальных языках

Например?

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

Хотя бы так

#include <stdio.h> #include <string>

void f ( const std::string& s ) { printf ( "%s\n", s.c_str () ); }

int main ( int argc, char * argv [] ) { f ( false ); return 0; }

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

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

Ну тогда предлагаю похоронить ещё и vala, да и макросы на хрен не нужны. И что мы увидим? В лучшем случае байткод, который современные процессоры не понимают. Так что полный бугагец и отстрел головы!!

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

> В моем понимании "Или генерировать код прямо на ходу." это метапрограммирование.

А я про неразлучность ООП и метапрограммирования не говорил.

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

Теперь замените строковый класс на char* 8)

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

> http://www.linux.org.ru/jump-message.jsp?msgid=2710611&cid=2712379

Ну и? Вот мой абзац:

> В Лиспе (в Common Lisp'е, который стандарт ANSI) сахара гораздо больше, чем в С++. И легко этого сахара сделать ещё больше, потому что, например, выполнение кода можно организовать на этапе компиляции. Или генерировать код прямо на ходу. Или переопределить существующий код на новый.

Это было про Лисп. Где тут про ООП и про его неразлучность с МОП?

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

>Я лучше спрошу какая связь между типизацией и вашими проблеммами с реализацией шаблонов?

Да прямая. Все эти плюсовые навороты со "статической типизацией" куда-то резко исчезают когда нужно сделать примитивную плугиновую архитектуру. Тут сразу начинается extern "C", хэндлы, массивы вариантов и пр.

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

Вы вообщето всю дорогу рассказывали мне какая каличная реализация ООП в С++, при том приплетая различные генерик функтионс, и пр. И вообще все обсуждение идет в контексте ООП. Как интерпретируется ваш абзац я уже указал. Если вы писав этот абзац думали о Скобочно Ориентированном Программировании, то извиняйте сие оффтоп, нужно помечать, я ваши мысли не читаю.

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

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

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

wfrr ★★☆
()

>Поддержка виджетов в QGraphicsView.
ВОТ ЭТО СУППЕР!

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

> Вы вообщето всю дорогу рассказывали мне какая каличная реализация ООП в С++,

Я написал, что ООП в С++ не самого лучшего качества

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

Сами просили.

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

Т.е. в начале абзаца написать: "В Лиспе (в Common Lisp'e, который стандарт ANSI) ..." - это недостаточно для понимания, о каком языке сейчас пойдёт речь? o_O

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

>Т.е. в начале абзаца написать: "В Лиспе (в Common Lisp'e, который стандарт ANSI) ..." - это недостаточно для понимания, о каком языке сейчас пойдёт речь? o_O

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

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

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

Ну от чего же, многие плюсатые программисты горячо и нежно людят руби. На руби очень удачно пишутся генераторы плюсатого кода.

mv ★★★★★
()

Информация по поводу размеров. Качать весь архив не обязательно. Можно скачать snapshot по адресу ftp://ftp.trolltech.com/qt/snapshots/ , который весит в 2 раза меньше. Только там отсутствует документация, впрочем её можно собрать с помощью make docs или скачать с помощью wget. Ну а для обновления можно воспользоваться rsync:

rsync -cvrz rsync://rsync.trolltech.com/qt-x11-4.4 ./

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

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

хе-хе. попробуй использовать его без moc и qobject :)

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

>Ваш гиморрой с плагинами это ваш гимморой вызванный кривым подходом, а не С++.

Правильный подход - экспортировать из динамической библиотеки extern "C" - функцию наподобие struct plugin* load_plugin(void) которая возвращает структуру из указателей на функции обеспечивающих функционал плугина, тем самым избавив себя от ньансов представления в памяти непонятных быдлоблобов, которые по недоразумению в С++ называются "Объектами". Так максимально надежно, максимально портируемо.

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

Это фанатизм, никому кроме клинических амозгликов 'непонятные быдлоблобы, которые по недоразумению в С++ называются "Объектами"' - не мешают. Так что к врачу.

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

Re^4: Qt 4.4

> Попробуйте кодить без рук.

Говорят. что винду написали биением жопы по клавиатуре. Так что всё можно

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

>никому кроме клинических амозгликов 'непонятные быдлоблобы, которые по недоразумению в С++ называются "Объектами"' - не мешают.

Мешают всем кроме откровенных вредителей которые кодят на Си++ и не делают extern "C".

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

> Тем не менее. Вы кстати тоже в прошлом писали на плюсах.

Не без этого. Но если у С++ объектная система явно слабже, чем у современных языков, то зачем мне утверждать обратное? Если программы на Руби, Питоне или Лиспе в силу некоторых факторов работают медленнее, чем, в среднем, плюсовые, то, опять же, зачем утверждать обратное? Бесплатно все эти дополнительные возможности не даются.

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

>Мешают всем кроме откровенных вредителей которые кодят на Си++ и не делают extern "C".

Статистику опросов приведете, или сие метанация?

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

>>Мешают всем кроме откровенных вредителей которые кодят на Си++ и не делают extern "C".

>Статистику опросов приведете, или сие метанация?

Ну Адоб например не может свое унаследованное говно на С++ дергать из ObjectiveC. Так и сидят на Сarbon.

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

>Не без этого. Но если у С++ объектная система явно слабже, чем у современных языков, то зачем мне утверждать обратное? Если программы на Руби, Питоне или Лиспе в силу некоторых факторов работают медленнее, чем, в среднем, плюсовые, то, опять же, зачем утверждать обратное? Бесплатно все эти дополнительные возможности не даются.

Уря dot! На сем можно закончить 8)

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

>Ну Адоб например не может свое унаследованное говно на С++ дергать из ObjectiveC. Так и сидят на Сarbon.

Это не статистика, а причины такого поведения вам неизвестны, хотя вы , конечно можете телепать.

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

> Мешают всем кроме откровенных вредителей которые кодят на Си++ и не делают extern "C".

Если ставится задача написать систему С++-плагинов для программы на С++, то зачем нужен сишный интерфейс? Любой язык для подгрузки модулей, написанном на ЯП с несовместимым ABI, должен иметь систему подпорок и костылей в виду foreign function interface.

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