LINUX.ORG.RU

LXDE переносят на Qt, планируется совместимость с Wayland

 , , ,


2

2

В блоге LXDE появился отчет о работе по переносу компонент LXDE на Qt. Скриншот демонстрирует почти полное окружение, в том числе файловый менеджер PCManFM-Qt и панель lxpanel-qt. Автор сообщает, что потребление памяти несколько повышено по сравнению с версией на Gtk+2, но с Gtk+3 ситуация не лучше. Пока что разработка идет с использованием Qt4, переход на Qt5 планируется после выхода версии 5.1. Для полной совместимости с Wayland необходимо решить проблемы с зависимостью спецификаций freedesktop.org от X11, но автор рассчитывает, что это сделают разработчики KDE и Gnome. Кроме того, уделяется внимание совместимости с Razor-Qt.

>>> Подробности

★★

Проверено: anonymous_incognito ()
Последнее исправление: cetjs2 (всего исправлений: 1)
Ответ на: комментарий от BattleCoder

я пробовал на gtkmm (это С++ биндинг к gtk+) и qt.

В qt мешать с STL плохо получается. долго и громко метерился.

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

gtkmm намного удобней если нужно сделать часть модулей тулкитонезависимыми, с qt надо больше всего городить.

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

gtkmm намного удобней если нужно сделать часть модулей тулкитонезависимыми, с qt надо больше всего городить.

А если ещё немного уменьшить связность логики и интерфейса, то и с Qt без проблем можно делать тулкитонезависимую логику. Во всяком случае skype без проблем использует Qt только в линуксовой версии, а QtCreator без проблем работает с libclang и это никак не задевает libclang.

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

У тебя что-то с руками. Qt отлично совместима с stl и модули можно делать тулкитонезависимыми.

Просто он видимо пишет в стиле

// Интерфейс логического модуля
std::vector<std::string> list_something(bool verbose);

// UI
tableView->setContent(list_something(false));

Разумеется, при такой сильной связанности логики и интерфейса с Qt будет неудобно.

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

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

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

Он скорее всего имел ввиду не то, что QVector вполне себе можно использовать с std::for_each и другими алгоритмами через итераторы, а то, что напрямую нельзя использовать std::string, std::vector и прочтие std::list - только через адаптеры типа QString::fromStdString() или QVector::toStdVector(), что требует дополнительных ресурсов на копирование.

Но это так, предположение. libastral не последней версии.

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

напрямую нельзя использовать std::string, std::vector и прочтие std::list - только через адаптеры типа QString::fromStdString() или QVector::toStdVector(), что требует дополнительных ресурсов на копирование.

Копирование кучи разных списков — это и есть чрезмерная связанность логики и интерфейса. В таких случаях можно уже всё писать на Qt без STL.

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

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

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

А если ещё немного уменьшить связность логики и интерфейса, то и с Qt без проблем можно делать тулкитонезависимую логику.

да со всем можно. вопрос в объёме дополнительного кода на прослойку.

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

В таких случаях можно уже всё писать на Qt без STL.

как-то не хочеться много кода переписывать.

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

нельзя использовать std::string (в glibmm Glib::ustring намного лучше совместим с std::string ).

что-то не видно интервальных конструкторов у QVector и т.д.

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

да со всем можно. вопрос в объёме дополнительного кода на прослойку.

У нормальных людей эта «прослойка» называется API и не создавать её считается плохим тоном. Разумеется, у индивидуальных разработчиков и слабых команд разработчиков на этот счёт другое мнение: они думают, будто смешивать логику и интерфейс до полной неотделимости — это круто. В результате в их коде годами не исправляются очевидные баги и годами проводятся попытки интегрировать стороннюю библиотеку заместо своего прибитого намертво велосипеда.

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

В qt мешать с STL плохо получается.

Неосилятор

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

нельзя использовать std::string (в glibmm Glib::ustring намного лучше совместим с std::string ).

Открой для себя QByteArray

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

Что-то, простите?

Он имеет в виду конструктор, принимающий два итератора

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

что-то не видно интервальных конструкторов у QVector

точно, столкнулся пару раз. было обидно.

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

Что-то, простите?

конструктор вида: std::vector(iterator begin, iterator end), есть у всех контейнеров в STL, у контейнеров Qt нет. Пережить можно, но, как выше писал, было пару раз обидно.

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