QListを初期化する正しい方法は何ですか?このコードを短くしたい:
QSplitter splitter;
QList<int> list;
list.append(1);
list.append(1);
splitter.setSizes(list);
しかし、std :: listから初期化を使用すると、動作していないようです:
splitter.setSizes(QList<int>::fromStdList(std::list<int>(1, 1)));
後者の場合、スプリッターは比率1:0で分割するようです。
次のコードを使用できます。
QList<int> list = QList<int>() << 1 << 1;
またはC++ 11を使用した初期化子リスト:
QList<int> list({1, 1});
後者は、gccの-std = c ++ 0xまたは-std = c ++ 11オプションで有効にできます。また、初期化リストのサポートがQListコンストラクターに追加されている場合は、関連するQtバージョンが必要になります。
QList<int>() << 1 << 1;
バリアントを使用しないでください。本当に遅いので。常にlist({1, 1})
バリアントを使用してください。
ソース: https://www.angrycane.com.br/en/2018/06/19/speeding-up-cornercases/