Подтвердить что ты не робот

Каков правильный способ инициализации QList?

Каков правильный способ инициализации 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.

4b9b3361

Ответ 1

Вы можете использовать следующий код:

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

или список инициализаторов с С++ 11:

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

Вы можете включить последнее с опцией -std = С++ 0x или -std = С++ 11 для gcc. Вам также понадобится соответствующая версия Qt для этого, где поддержка списка инициализаторов была добавлена ​​в конструктор QList.