35

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 の比率で分割しているように見えます。

4

2 に答える 2

52

次のコードを使用できます。

QList<int> list = QList<int>() << 1 << 1;

または C++11 の初期化子リスト:

QList<int> list({1, 1});

後者は、gcc の -std=c++0x または -std=c++11 オプションで有効にできます。QList コンストラクターにイニシャライザー リストのサポートが追加された場合、関連する Qt バージョンも必要になります。

于 2013-09-25T07:20:26.780 に答える