30

Uther (./29) :
Le problème c'est que je voudrais parfois faire de l'IHM, ou autre sans avoir a subir le framework et les contraintes qui vont avec.
Alors Qt n'est pas l'outil qu'il te faut, tout simplement. Dans l'absolu c'est dommage (tout comme c'est rageant de tomber sur LE truc qu'il nous faut en .NET quand on n'utilise pas .NET), mais ça ne me semble pas raisonnable de demander à un framework d'être modulaire à 100%.

Uther (./29) :
Mais il y a eu plusieurs version de Qt entre temps dont des majeures qui brisaient la compatibilité, ils auraient pu en profiter pour s'intégrer mieux au C++.
C'est quand même un gros chantier, avec des risques de régressions. Est-ce qu'il y a une vraie demande des utilisateurs de Qt ?
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

31

Zerosquare (./30) :
Alors Qt n'est pas l'outil qu'il te faut, tout simplement. Dans l'absolu c'est dommage (tout comme c'est rageant de tomber sur LE truc qu'il nous faut en .NET quand on n'utilise pas .NET), mais ça ne me semble pas raisonnable de demander à un framework d'être modulaire à 100%.
Je sais bien que pour certain projets, Qt, dans sa philosophie, n'est pas l'outil qu'il me faut, mais le problème est que l'outil qu'il me faut n'existe pas et que Qt est ce qui s'en rapproche le plus.
Zerosquare (./30) :
C'est quand même un gros chantier, avec des risques de régressions. Est-ce qu'il y a une vraie demande des utilisateurs de Qt ?
Ça n’intéresse probablement pas les utilisateurs actuels de Qt, vu qu'il ont déjà fait l'effort que se contraindre au Framework.
Mais si Qt était un ensemble de bibliothèques autonome qui s’intègrent facilement au langage, un peu comme Boost, plutôt qu'un Framework avec ses concepts particuliers, il pourrait probablement intéresser pas mal de monde en plus.

Encore une fois, je ne dis pas que le principe du tout intégré n'a pas d'intérêt, c'est très appréciable dans beaucoup de situation. Je dis juste que ça a pour conséquence que Qt n'est pas aussi léger et intégré au langage qu'il pourrait l'être.
avatar

32

./30 Il me semble qu'il y a de l'interop C -> C# non? Le seul jour ou j'ai eu besoin de faire ca etait d'injecter une dll C# dans Wow (surprise grin)

Enfin je suppose que de toute facon envisager ca etait hors de question

33

Uther (./24) :
Je ne dis pas que QtCore ne peut pas avoir d’intérêt, il y a des choses intéressantes dedans, je trouve juste dommage qu'elle soit la base de tout Qt et qu'on se trouve obligé de la subir même si on fait quelque chose qui pourrait très bien s'en passer.
Ce n'est pas dommage du tout, ce serait horrible si on devait subir les conteneurs STL dans les APIs. Il y a des développeurs (notamment Marc Mutz) qui voudraient tout remplacer par la STL, mais heureusement, il y a des développeurs qui s'y opposent. Il est maintenant autorisé dans Qt d'utiliser les conteneurs STL en interne (parce que si on les utilise de manière optimale, ils ont tendance à être plus rapides), mais pas dans les APIs.

Le problème avec les conteneurs STL est que l'absence de partage implicit fait qu'il faut toujours faire attention à éviter les copies, tout le bordel des moves et swaps rajoutés dans le C++11 ne sert qu'à ça. Ça donne du code difificilement lisible, alors que les conteneurs Qt peuvent être traîtés comme des scalaires sans perte d'efficacité.

Warpten (./25) :
QMultiMap -> (unordered_)?multimap
Seulement multimap, unordered_multimap correspond à QMultiHash.

Les conteneurs tries de la STL sont, pour autant que je sache, quasiment tous des hash map, des arbres binaires ou des listes liees (ou se comportent comme tels), donc y a rien a bouger en mémoire, juste des pointeurs a changer.
Ça ne veut pas forcément dire que le tri par insertion dans ce conteneur sera plus rapide qu'un tri d'une liste (surtout une QList, qui est un tableau de pointeurs – je ne comprends pas pourquoi tout le monde se plaint de QList, le tableau de pointeurs est le meilleur compromis possible entre un vecteur et une liste chaînée).

./24 pencil Rien que QString est une aberration a mon sens. Certes, y a l'unicode, mais on a aussi std::wstring
La taille de wchar_t n'est pas standardisée, donc ce n'est pas portable.

ou encore std::u(16|32)string, exotiques mais bien definis (Ce ne sont que des specialisations de std::basic_string<...>. Meme sices types n'ont aucune notion d'encodage, mais c'est voulu, puisque le C/C++ ne voit les chaines de caracteres que comme des tableaux de bytes...
C'est déjà une bonne raison de ne pas les utiliser. Et ensuite, QString est partagé implicitement, std::string ne l'est pas (il l'était dans d'anciennes versions de g++, mais le standard C++11 l'interdit, donc g++ a cassé l'ABI pour rendre std::string moins efficace mur).

Et WTF? f8fhNbk.png
On ne peut pas faire autrement, il n'y a pas de varargs non-POD en C++.

Je suis en revanche d'accord pour dire que <iostream> et les differentes versions de <fstream> ne sont que des horreurs. Pour avoir essaye d'ecrire mes propres facet, c'est absolument inutilisable.
Toute la STL est une grosse horreur, tout va ensemble et tout est également nul.

Uther (./29) :
Le problème c'est que je voudrais parfois faire de l'IHM, ou autre sans avoir a subir le framework et les contraintes qui vont avec.
Alors en réalité, ton problème n'est pas que Qt s'appuie sur QtCore, mais que la STL se veut une bibliothèque standard, mais ne propose toujours rien pour l'IHM. mur La STL est pourrie et incomplète.

Uther (./31) :
Je sais bien que pour certain projets, Qt, dans sa philosophie, n'est pas l'outil qu'il me faut, mais le problème est que l'outil qu'il me faut n'existe pas et que Qt est ce qui s'en rapproche le plus.
À mon avis, ce que tu cherches est gtkmm – c'est un binding C++ pour un pur toolkit graphique (GTK+) et ça utilise la STL (std::string, conteneurs etc.).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

34

Warpten (./32) :
./30 Il me semble qu'il y a de l'interop C -> C# non?
Oui on doit pouvoir le faire, mais bonjour l'usine à gaz, et puis ça nécessite tout de même que le framework soit installé.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

35

Kevin Kofler (./33) :
On ne peut pas faire autrement, il n'y a pas de varargs non-POD en C++.

https://github.com/fmtlib/fmt ? Ce ne sont pas des vararg, mais des template parameter pack, mais bon...

36

Kevin Kofler (./33) :
Alors en réalité, ton problème n'est pas que Qt s'appuie sur QtCore, mais que la STL se veut une bibliothèque standard, mais ne propose toujours rien pour l'IHM. mur La STL est pourrie et incomplète.
Pour le coup, l'IHM est trop variable en fonction des OS pour aller dans la bibliothèque standard d'un langage qui se veut bas niveau comme C++. Pour moi ça a tout a fait sa place dans une bibliothèque séparée.
La STL est loin d'être parfaite, mais je n'ai pas envie de me taper QtCore qui n'est pas parfaite non plus et tout ce que ça implique juste pour pouvoir l'utiliser.

Kevin Kofler (./33) :
À mon avis, ce que tu cherches est gtkmm – c'est un binding C++ pour un pur toolkit graphique (GTK+) et ça utilise la STL (std::string, conteneurs etc.).
Ça serait en effet pas mal si Gtk n'avait pas un look foireux en dehors de Linux
avatar

37

Warpten (./35) :
Kevin Kofler (./33) :
On ne peut pas faire autrement, il n'y a pas de varargs non-POD en C++.

https://github.com/fmtlib/fmt ? Ce ne sont pas des vararg, mais des template parameter pack, mais bon...
Les templates variadiques, il n'y avait pas non plus ça en C++98, et Qt 5 maintient la compatibilité binaire, donc QString::arg pourra utiliser ça au plus tôt dans Qt 6.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

38

39

Même soucis, c'est assez monolithique. Mais c'est vrai qu'au moins on a pas a se farcir le moc
avatar

40

rien que pour ca je préfère. mais c'est vrai ya wxcore

41

Ouais, et Tk \o/
(En plus, utiliser Tk en C, ça fait j'tk/C !)
avatar

42

43

malheureusement non ;P

Ca sera du C/TK grin

Heureusement qu'il n'y a pas de langage T....
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

44

Oui je sais, mais c'est nul C/Tk embarrassed
avatar

45

T/Tk
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

46

47

Lua/C/Tk
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

48

Tiens, qu'est-ce qui vous gêne avec moc ? Une simple passe et basta, que ce soit dans un makefile ou dans une ide, ça reste un truc à configurer quand on fait le setup du biold et on en parle plus, non ?

49

c'est bien la simple passe qui me gêne, ca demande un précompilateur, alors que wx utilise uniquement du c++ valide.

50

C'est un peu usine à gaz, mais bon, pas rédhibitoire non plus.

51

Le truc malheureux c'est que chaque solution qui apporte la creation d'interfaces utilisateurs est usine-a-gaz-esque. Meme WPF, a cause de sa puissance, met un temps d'adaptation, surtout quand on est habitue a la simplicite relative (tant qu'on n'a pas envie de creer ses propres controles, ca va) de WinForms.

52

Warpten (./51) :
Le truc malheureux c'est que chaque solution qui apporte la creation d'interfaces utilisateurs est usine-a-gaz-esque.
Bof, non ?
Pour java/swing, windowbuilder (un designer d'ui) te génère le code et rien d'autre, et lit le code qu'il a généré ou que tu as modifié, ou... du code qui vient de n'importe où... jusqu'à un certain point, mais c'est vraiment robuste.

53

Je trouve Qt Designer bien fait aussi... Du simple glisser déposé, puis on commence à coder à partir des clics.

54

Oui le peu que j'ai vu c'était honnête, c'est juste que ça semble un peu moins intégré que le truc dont je parle (un peu plus d'indirections).