2013-09-25 6340 views
28

什麼是正確的方式來初始化QList?我想使這個代碼更短:什麼是初始化QList的正確方法?

QSplitter splitter; 
QList<int> list; 
list.append(1); 
list.append(1); 
splitter.setSizes(list); 

但是當我使用從初始化的std ::列表,它似乎並沒有被工作:

splitter.setSizes(QList<int>::fromStdList(std::list<int>(1, 1))); 

在後一種情況下,分離器似乎分裂比例爲1:0。

回答

37

你可以使用以下代碼:

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

或初始化列表與C++ 11:

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

可以啓用後者與-std = C++ 0x或 - std = C++ 11選項gcc。您還需要相關的Qt版本,以便將初始化程序列表支持添加到QList構造函數中。

+0

使用Qt 5.2它拋出'錯誤:預期表達的QList list2中({1,1});' –

+0

@ꜱᴀᴍᴏᴛʜ:你需要'CONFIG + = C++ 11'。 – lpapp

+0

雖然它是自動啓用的。謝謝 ! –

相關問題