Tôi đang sử dụng một QVariant
để lưu trữ một con trỏ đến đối tượng của tôi trong một QComboBox
Làm cách nào để lấy lại dữ liệu từ QVariant cho một loại người dùng?
void MainFrame::initContainerBox(QComboBox *oBox)
{
IDataContainer *idc = new CSVContainer();
QVariant v(QVariant::UserType, idc);
oBox->addItem(idc->getContainername(), v);
void *idc1 = v.data();
if(idc1 == idc)
printf("Test\n");
}
Nhưng làm thế nào để tôi nhận được dữ liệu trở lại? Khi tôi sử dụng data()
con trỏ là khác nhau, do đó, điều này dường như không chính xác. Từ gooogling tôi đã có ấn tượng rằng tôi phải đăng ký một loại cho mỗi lớp tôi muốn sử dụng trong một QVariant
là chính xác hoặc tôi có thể lấy giá trị mà không có điều đó?
Sử dụng giá trị 'QVariant ::()' –
Tôi cũng đang sử dụng 'giá trị', nhưng nó không hoạt động. Bạn có thể đưa ra một ví dụ làm việc? – Devolus
@Devolus: hết tò mò, điều gì không hiệu quả? Bạn đã thử ví dụ này chưa (http://qt-project.org/doc/qt-5/qvariant.html#value)? – lpapp