2017-07-05 70 views
0

我有兩個對象QColor,QFont並且有可能添加更多。
我想將該對象存儲在容器中,例如QList,但該容器需要一種類型的數據。將不同類型的對象存儲在容器中

QFont font = QFontDialog::getFont(&fontDlgRet, initFont, parent); 
QColor color = QColorDialog::getColor(initColor, parent); 

是否有容器接受添加不同類型的對象?

+0

可能是一個傻瓜:https://stackoverflow.com/questions/7804955/heterogeneous-containers-in-c – NathanOliver

+0

此外,IIRC他們都是從'QObject'得出這樣你可以有一個'的QList '。 – NathanOliver

+1

你可能想要一個'QList ' – drescherjm

回答

1

是否有容器接受添加不同類型的對象?

是:QVariantList,QVariantMap,QVariantHash。

您也可以手動推出自己的產品,例如std::vector<QVariant>

http://doc.qt.io/qt-5/qvariant.html

此外,請注意這樣失去類型信息,通過和壞的做法皺起了眉頭。如果您有一組有限的類型,則可以使用std::variant代替。

相關問題