Posté le 23/08/2017 à 17:01 Membre depuis le 27/04/2006, 59488 messages
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 ?
avatarZeroblog

« 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
Posté le 23/08/2017 à 17:53 Membre depuis le 10/06/2001, 8784 messages
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
Posté le 23/08/2017 à 21:26 Membre depuis le 24/04/2009, 2514 messages
./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
Posté le 23/08/2017 à 21:56 Membre depuis le 10/06/2001, 40014 messages
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.).
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
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é
Posté le 23/08/2017 à 22:04 Membre depuis le 27/04/2006, 59488 messages
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é.
avatarZeroblog

« 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
Posté le 23/08/2017 à 22:08 Membre depuis le 24/04/2009, 2514 messages
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...
Posté le 23/08/2017 à 23:09Edité par Uther le 24/08/2017 à 01:02 Membre depuis le 10/06/2001, 8784 messages
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
Posté le 24/08/2017 à 00:55 Membre depuis le 10/06/2001, 40014 messages
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.
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
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é
Posté le 24/08/2017 à 22:48 Membre depuis le 16/06/2001, 69242 messages
uther: t'as essayé wxwidgets?
Posté le 25/08/2017 à 08:28Edité par Uther le 25/08/2017 à 11:20 Membre depuis le 10/06/2001, 8784 messages
Même soucis, c'est assez monolithique. Mais c'est vrai qu'au moins on a pas a se farcir le moc
avatar
Posté le 25/08/2017 à 09:15 Membre depuis le 16/06/2001, 69242 messages
rien que pour ca je préfère. mais c'est vrai ya wxcore
Posté le 25/08/2017 à 10:05 Membre depuis le 13/06/2001, 72568 messages
Ouais, et Tk \o/
(En plus, utiliser Tk en C, ça fait j'tk/C !)
avatar
Posté le 25/08/2017 à 10:48 Membre depuis le 16/06/2001, 69242 messages
trilove
Posté le 25/08/2017 à 10:52 Membre depuis le 30/06/2001, 70810 messages
malheureusement non ;P

Ca sera du C/TK grin

Heureusement qu'il n'y a pas de langage T....
avatarProud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
yN a cassé ma signature :o
Posté le 25/08/2017 à 11:52 Membre depuis le 13/06/2001, 72568 messages
Oui je sais, mais c'est nul C/Tk embarrassed
avatar
Posté le 25/08/2017 à 11:54 Membre depuis le 30/06/2001, 70810 messages
T/Tk
avatarProud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
yN a cassé ma signature :o
Posté le 25/08/2017 à 13:56 Membre depuis le 16/06/2001, 69242 messages
PL/SQL/Tk <3
Posté le 25/08/2017 à 15:13 Membre depuis le 30/06/2001, 70810 messages
Lua/C/Tk
avatarProud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
yN a cassé ma signature :o
Posté le 31/08/2017 à 04:37 Membre depuis le 18/06/2001, -26239 message
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 ?
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 31/08/2017 à 08:09 Membre depuis le 16/06/2001, 69242 messages
c'est bien la simple passe qui me gêne, ca demande un précompilateur, alors que wx utilise uniquement du c++ valide.
Posté le 02/09/2017 à 00:24 Membre depuis le 10/06/2001, 44321 messages
C'est un peu usine à gaz, mais bon, pas rédhibitoire non plus.
Posté le 02/09/2017 à 12:01 Membre depuis le 24/04/2009, 2514 messages
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.
Posté le 02/09/2017 à 16:57 Membre depuis le 10/06/2001, 44321 messages
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.
Posté le 02/09/2017 à 21:35 Membre depuis le 18/06/2001, -26239 message
Je trouve Qt Designer bien fait aussi... Du simple glisser déposé, puis on commence à coder à partir des clics.
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 03/09/2017 à 01:39 Membre depuis le 10/06/2001, 44321 messages
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).