Portál AbcLinuxu, 29. května 2025 00:11
Mark Shuttleworth se ve svém blogu rozepsal o budoucí pozici Qt aplikací v Ubuntu. Doposud dostávají přednost aplikace v GTK+, ale do budoucna by hlavním vodítkem měla být kvalita aplikace a ne použitý toolkit.
Tiskni
Sdílej:
QByteArray QFile::read(qint64)
, když QByteArray indexuje a jeho velikost je daná typem int. Nebo je mizerně "exception safe". Nebo je možné ho zkompilovat v extra namespace s čímž _žádná_ aplikace nepočítá a spoléhají na to, že tomu tak není. Nebo lze zkopilovat bez podpory STL, ale půlka aplikací spoléhá na to, že to tam je, aniž by se ujistili nějakým tím #ifdefem
.
Zlaté glib/gio, které pro načítání ze souboru do paměti používá vhodný typ (no, vhodný, je to gsize, samozřejmě size_t by bylo lepší, ale zatím je do velikosti stejný - bohužel je to ale "nový" typ a na takové vlastnosti tedy nelze spoléhat, typedef se může změnit, fakt nechápu tu demenci vývojáří a jejich dementní nutkání definovat vlastní typy, když standard jazyka nám příslušné typy již dává). Bohužel i v glib jsou některé fce na palici.
Nebude (nebylo) - http://labs.qt.nokia.com/2008/10/01/native-file-dialogs-in-gnome/.Note that since the KDE file dialog provides somewhat different functionality from the Qt one, KDE applications will still use the KDE file dialog.
Ty asi nesleduješ spôsob, akým sa prijímajú zmeny do Qt. Skús napr. občas sledovať KDE a prídeš na to, že je kopec vecí, ktoré by mohli byť v Qt urobené o niečo lepšie, ale Nokia o tie zmeny nemá záujem (takže vylepšovať Gtk+ je oveľa jednoduchšie, ako vylepšovať Qt).Asi souhlas. Ale nebyla by pak Nokia funkcnejsi, kdyby na ni tlacil i Canonical ? Nemluve o tom jak by se to vylepsilo, pokud by jejich vyvojari pracujici na gtk (kteremu ujel vlak) presli pomoci Nokii na QT.
gintMůže mi někdo říci jediný normální důvod, proč "vytváří" nový typ gint, který je podle dokumentace stejný jako typ int a proč na rozsah nepoužijí již existující definice INT_MAX a INT_MIN? (jméno typu začínající na g není normální důvod). A spousta dalších typů, jenom s g na začátku, nebo s odkrojeným _t. Nebo třeba gsize, který dokumentace definuje takto:
Corresponds to the standard C int type. Values of this type can range from G_MININT to G_MAXINT.
An unsigned integer type of the result of the sizeof operator ... blabla
Standard jasně říká, že výsledek sizeof operátoru je právě size_t, což je právě neznaménková hodnota. Proč si tedy glib musí to samé "definovat" ještě jednou - navíc je jejich definice zavádějící - sice je to typedef na size_t, ale "nutí" vás používat jejich typ. Proč proboha?
Qt v tomto není o nic lepší.Jinak vemte si příklad. Na systému je možné alokovat objekt o max velikosti 32K. Na takovém systému stačí, aby sizeof(size_t) bylo 2. Počet alokovaných objektů ale může být třeba 4G, na to bude teda potřeba pointer o velikosti minimálně 4. Můžete do size_t uložit pointer?
* pro případ tiše předpokládám, že char má na tomto systému 8b, což mi standard negarantuje.
long a = (long)CreateWindowEx(...)
než HWND a = CreateWindowEx(...)
, int diff = pointer2 - pointer1
místo intptr_t diff = pointer2 - pointer1
či int len = strlen(řetězec)
místo size_t len = strlen(řetězec)
. Ale můžeme se tu hádat do nekonečna, ale v Qt a glib je už na změny pozdě, v Qt mohli alespoň s těmi inty něco udělat, když vyšla první verze Qt4, bohužel jim ujel vlak.
Proc podle vas nejde v C programovat obektove?Na coz jste vubec neodpovedel, ale kladl jste sam otazky (proc nepouzit C++ atd), na ktere jsem se Vam snazil odpovedet. Jazyk, ktery vyvojari gnome pouzivaji me zajima asi tak jako v kolik hodin jezdi v Wellingtonu popelari.
s/qt/kde/a pak to dává aspoň smysl
dokud bude mít Red Hat, Debian a další defaultně Gnome tak se o GTK rozhodně nebojím. Za Qt stojí jen Nokia, a i nové MeeGo (což je spolupráce Nokie a Intelu) je vlastně Gnome (+ je tam teda přidaný to qt)
http://www.abclinuxu.cz/clanky/meego-1.1-na-netbooku
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.