Russian Qt Forum
Май 29, 2024, 11:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: РЕШЕНО... QComboBox, QVariant и собственные типы данных...  (Прочитано 5366 раз)
-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 конвертить не может.
Подскажите пожалуста как это замутить можно.
« Последнее редактирование: Июнь 17, 2008, 07:50 от -=QT=- » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июнь 16, 2008, 16:40 »

Где-то тут уже было про QVariant и свои типы. Поищи, там кажется было решение.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Июнь 16, 2008, 17:06 »

См.:

QVariant::value() или qVariantValue() или qvariant_cast()
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
vregess
Гость
« Ответ #3 : Июнь 16, 2008, 21:04 »

еще можно посмотреть на Q_DECLARE_METATYPE()
Записан
-QT-
Гость
« Ответ #4 : Июнь 17, 2008, 07:49 »

Всем спасибо за помощь.
Это я вчера был голодный, злой и тупил по черному  Смеющийся

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

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

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

P.S. Админам -> Я просто не знал куда больше эта тема подходит, поэтому запостил в GUI.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.042 секунд. Запросов: 19.