Russian Qt Forum

Qt => Общие вопросы => Тема начата: -QT- от Июнь 16, 2008, 15:02



Название: РЕШЕНО... QComboBox, QVariant и собственные типы данных...
Отправлено: -QT- от Июнь 16, 2008, 15:02
Доброго времени суток!
У меня есть собственные типы данных и я использую их в наполнении QComboBox.
Код:
 
   comboBoxBaudRate->clear();
    comboBoxBaudRate->addItem("BAUD50", BAUD50);
    comboBoxBaudRate->addItem("BAUD75", BAUD75);
    comboBoxBaudRate->addItem("BAUD110", BAUD110);
    comboBoxBaudRate->addItem("BAUD134", BAUD134);
    comboBoxBaudRate->addItem("BAUD150", BAUD150);
При сравнении
Код:
if ( comboBoxBaudRate->itemData(index) == scaner->getBaudRate() )
Приведение типов происходит без вопросов
А вот если я хочу присвоить значение
Код:
BaudRateType newBaudRate = comboBoxBaudRate->itemData(index);
корячиться и приведение типов делать не желает даже если пытаемся сделать так
Код:
BaudRateType newBaudRate = (BaudRateType)comboBoxBaudRate->itemData(index);
Говорит что из QVariant в BaudRateType конвертить не может.
Подскажите пожалуста как это замутить можно.


Название: Re: QComboBox, QVariant и собственные типы данных...
Отправлено: Пантер от Июнь 16, 2008, 16:40
Где-то тут уже было про QVariant и свои типы. Поищи, там кажется было решение.


Название: Re: QComboBox, QVariant и собственные типы данных...
Отправлено: pastor от Июнь 16, 2008, 17:06
См.:

QVariant::value() или qVariantValue() или qvariant_cast()


Название: Re: QComboBox, QVariant и собственные типы данных...
Отправлено: vregess от Июнь 16, 2008, 21:04
еще можно посмотреть на Q_DECLARE_METATYPE()


Название: Re: QComboBox, QVariant и собственные типы данных...
Отправлено: -QT- от Июнь 17, 2008, 07:49
Всем спасибо за помощь.
Это я вчера был голодный, злой и тупил по черному  ;D

решение нашлось быстро и эффективно за 30-ть секунд:

Код:
BaudRateType newBaudRate = (BaudRateType)comboBoxBaudRate->itemData(index).toInt();

Всего-то двойное приведение типов - первое методом QT второе стандартными возможностями C++ .

P.S. Админам -> Я просто не знал куда больше эта тема подходит, поэтому запостил в GUI.