в линуксе никаких нормальных GUI библиотек нет, любая стоящая прога всегда использует какую-то свою библиотеку, а то что написано на gtk и qt выбросить жалко, и нести тяжело
К сожалению, разработчики GTK игнорируют особенности винды, из-за чего в потоке нельзя просто так взять и получить/изменить что-то в виджетах. Обход проблемы есть, но он не нужен под линуксом. Вот и выходит, что оно кроссплатформенно да, но ни в коем случае НЕ всё.
К сожалению, разработчики GTK игнорируют особенности винды, из-за чего в потоке нельзя просто так взять и получить/изменить что-то в виджетах.
Под Linux'ом лучше тоже этого не делать. Лично сталкивался с падением ПО при включенном режиме для инвалидов в Гноме (не помню как по научному называется это дело, значок еще такой синий в трее). Может это и бага Гнома, может и конкретной версии и сейчас уже починили, но требовалась стабильная работа ПО под любым дистром/DE, так что пришлось избавляться от GTK-вызовов из не-GTK-потоков.
И всё кросс-платформенно, да.
Ага, только если этим всем лично не пользоваться.
А в остальном как раз нормально все. Лично пользуюсь, ага.
Ладно, не буду вякать. За кроссплатформенность придется платить либо использованием велосипеда над велосипедом, либо изучением особенностей написания кода под каждую платформу.
Набор библиотек на C который заменит Qt на принципе «Компилируем без изменения исходного кода на все платформы».
к сожалению, нет в природе такого. причем qt тоже под определение «без изменения исходного кода на все платформы» не попадает, если в это понятие входят мобильники и планшеты. все равно гуй адаптировать придется. да и использовать qt расточительно, т.к. приложение раздувается до неимоверных размеров.
на лоре писали, что qt добавляет +10Mb к андроидному APK, что на подавляющем большинстве андроидных девайсов будет обозначать «поставить некуда, место на internal storage кончилось».
Делал бы лучше только под линукс, а если вдруг его приложение наберет такую популярность, то найдутся и те, кто портирует приложение на другие платформы.
на лоре писали, что qt добавляет +10Mb к андроидному APK, что на подавляющем большинстве андроидных девайсов будет обозначать «поставить некуда, место на internal storage кончилось».
Я бы не сказал, что в современных телефонах такой маленький internal storage.
Я бы не сказал, что в современных телефонах такой маленький internal storage.
ну если делать софт только для тех кто апгрейдит телефон каждые полгода — да, наверное и qt подойдет. у меня самого телефон двухгодовалый htc desire, и internal storage категорически маленький.
Тут уже выше сказали: Gtk+ и GLib. Больше проверенных вариантов нету. Хотя есть EFL, который вполне себе подходит под требования. Но сказать честно, на Windows я его не пробовал, но довелось использовать эти библиотеки на десктопном Linux и embedded Linux(без иксов, с фреймбуфером), показали себя вполне неплохо. Возможность собрать под винду есть, и даже имеется слой совместимости (с говорящим названием Evil). Так что можно посмотреть в эту сторону.
К сожалению, разработчики GTK игнорируют особенности винды, из-за чего в потоке нельзя просто так взять и получить/изменить что-то в виджетах.
Ну в общем-то в любом графическом тулките многопоточная работа с виджетами - тонкий момент, и потому считается хорошим и правильным всё-таки разделять рабочие потоки и gui-поток. Да и честно сказать, я и не помню такого, чтобы где-то была заявлена корректная обработка изменений в UI, сделанных из другого потока.
Допустим, понадобится ТСу запустить несколько параллельных потоков + с openMP распараллелить цикл какой… Что-то сомневаюсь, что в мастдае есть pthreads и openMP.