Каков правильный способ инициализации 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.
Ответы
Ответ 1
Вы можете использовать следующий код:
QList<int> list = QList<int>() << 1 << 1;
или список инициализаторов с С++ 11:
QList<int> list({1, 1});
Вы можете включить последнее с опцией -std = С++ 0x или -std = С++ 11 для gcc. Вам также понадобится соответствующая версия Qt для этого, где поддержка списка инициализаторов была добавлена в конструктор QList.