2013-07-14 36 views
0

我如何用QPixmap填充QMap值並同時創建該變量?(Qt C++)用值填充QMap並同時聲明/初始化?

這真的很難讓我解釋

我目前有:

QMap<QString, QPixmap> slot_pic; 

slot_pic["block1damage0"] = (QPixmap)b1d0(":/textures/blocks/textures/blocks/stone.png"); 

我得到一個錯誤,說的QPixmap b1d0是一個未聲明的標識符。

很顯然,我可以這樣做:

QPixmap b1d0(":/textures/blocks/textures/blocks/stone.png"); 

slot_pic["block1damage0"] = b1d0; 

的問題是我身邊的這些400,我已經給每一個QPixmap的路徑,所以我不想再寫一切-_-如果我可以填充地圖,我將聲明每個QPixmap路徑,那將是非常棒的。

感謝您的時間。隨意評論儘可能多的問題,只要你喜歡:)

+0

你知道你可以迭代資源中的目錄嗎?我希望你不會像400行的slot_pic [「hardcodedvarname」] = QPixmap(「:hardcodedpathhere」); –

+0

哈哈太晚XD – mrg95

回答

1

擺脫b1d0。只需創建臨時QPixmap並讓QPixmap的賦值運算符運行其過程。

QMap<QString, QPixmap> slot_pic; 
slot_pic["block1damage0"] = (QPixmap)(":/textures/blocks/textures/blocks/stone.png"); 
+0

我會試試這個,是否可以使用帶有int鍵的QMap和值QPushButton? – mrg95