Название: работа с enum в QSettings Отправлено: Hoksmur от Июнь 18, 2013, 09:15 Доброго дня.
Не могу победить сохранение/восстановление настроек через QSettings надо сохранить установки QAudioFormat, но там есть два enum - SampleType и Endian То есть такие строки (в простейшем случае) не работают. Код: QAudioFormat settings; Это не значит, что не подходит - не разобрался. Если можно бы - с примером или ссылкой. Название: Re: работа с enum в QSettings Отправлено: Hellraiser от Июнь 18, 2013, 09:50 Код: inifile->setValue("device/sampletype", settings.sampleType()); Название: Re: работа с enum в QSettings Отправлено: Hoksmur от Июнь 18, 2013, 10:00 Огромное спасибо!
В C++ новичёк, как то на Си больше для Embedded писал до этого. Проверьте правильность понимания, если не сложно: .toInt() - преобразует в целое выражение до него, а static_cast<QAudioFormat::SampleType> - к требуемому набору значений перед записью в структуру/поле/... Я так пробовал: Код: inifile->setValue("device/sampletype", static_cast<int>(settings.SampleType)); Название: Re: работа с enum в QSettings Отправлено: kambala от Июнь 18, 2013, 10:51 static_cast<int>(value) аналогичен сишному (int)value, но предпочтительнее
Название: Re: работа с enum в QSettings Отправлено: lit-uriy от Июнь 18, 2013, 10:57 >>.toInt() - преобразует в целое выражение до него
терминология Визуалбейсиковская, не верная. функция QSettings::value() возвращает тип QVariant, а у него есть функция toInt() (http://www.doc.crossplatform.ru/qt/4.6.x/qvariant.html#toInt) >>а static_cast<QAudioFormat::SampleType> - к требуемому набору значений просто приводит тип Целое (int) к типу QAudioFormat::SampleType |