Quelle est la bonne façon d'initialiser QList? Je veux raccourcir ce code:
QSplitter splitter;
QList<int> list;
list.append(1);
list.append(1);
splitter.setSizes(list);
Mais quand j'utilise l'initialisation de std :: list, cela ne semble pas fonctionner:
splitter.setSizes(QList<int>::fromStdList(std::list<int>(1, 1)));
Dans ce dernier cas, le séparateur semble se diviser dans un rapport 1: 0.
Vous pouvez utiliser le code suivant:
QList<int> list = QList<int>() << 1 << 1;
ou liste d'initialisation avec C++ 11:
QList<int> list({1, 1});
Vous pouvez activer ce dernier avec l'option -std = c ++ 0x ou -std = c ++ 11 pour gcc. Vous aurez également besoin de la version Qt appropriée pour celle où la prise en charge de la liste d'initialisation a été ajoutée au constructeur QList.
N'utilisez jamais la variante QList<int>() << 1 << 1;
, car elle est vraiment lente. utilisez toujours la variante list({1, 1})
.
source: https://www.angrycane.com.br/en/2018/06/19/speeding-up-cornercases/