crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Почему не работает на другом копьютере
Wlad
  опции профиля:
сообщение 9.12.2008, 14:20
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 9.12.2008
Пользователь №: 450

Спасибо сказали: 0 раз(а)




Репутация:   1  


Программа прекрасно работает на копьютере где была создана!
Но на другом не работает - выдает сообжение:
Invalid variant operation
Библиотеки:
mingwm10.dll
QtCore4.dll
QtGui4.dll
были, естественно добавлены на новый комп. Что еще надо непонятно!
В программе истользуется QVariant, вот при первом же оращении к нему и выдается эта ошибка.
То есть на чужом компе не работает QVariant :(
Может кто знает, чего не хватает?

Спасибо

Сообщение отредактировал Litkevich Yuriy - 18.12.2008, 21:00
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 9.12.2008, 14:26
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Как я понимаю, у тебя просто QVariant равен 0, потому и ругается так.
Код обращения к QVariant приведи, или проверь сам, почему такое может быть.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Wlad
  опции профиля:
сообщение 9.12.2008, 14:33
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 9.12.2008
Пользователь №: 450

Спасибо сказали: 0 раз(а)




Репутация:   1  


Проверял. В QVariant передается строка QString.
Она точно такая же, как и на исходном компе.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 9.12.2008, 14:37
Сообщение #4


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


А показать код и ошибку можешь?

Сообщение отредактировал molchanoviv - 9.12.2008, 14:38
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Wlad
  опции профиля:
сообщение 9.12.2008, 14:41
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 9.12.2008
Пользователь №: 450

Спасибо сказали: 0 раз(а)




Репутация:   1  


Для опрелеленности.
Спотыкаемся на оченнь простом месте:
QString Name, ID;
.........
tableCombo->addItem(.Name,QVariant(ID));

Перед последним оперетором вставлял вывод: ID - нормальная строка!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 9.12.2008, 14:44
Сообщение #6


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(Wlad @ 9.12.2008, 14:41) *
tableCombo->addItem(.Name,QVariant(ID));
Это компилируется или ты руками написал и сделал ошибку?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Wlad
  опции профиля:
сообщение 9.12.2008, 14:52
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 9.12.2008
Пользователь №: 450

Спасибо сказали: 0 раз(а)




Репутация:   1  


Руками.
Реально строка такая:

QMessageBox::information(0,QObject::tr("Transform"),tableList[i].ID);
tableCombo->addItem(tableList[i].Name,QVariant(tableList[i].ID));
QMessageBox::information(0,QObject::tr("Transform"),QObject::tr("End addItem"));

До второго отладочного сообщения не доходим, хотя на моем компе все работает как надо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 9.12.2008, 15:05
Сообщение #8


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(Wlad @ 9.12.2008, 14:52) *
tableCombo->addItem(tableList[i].Name,QVariant(tableList[i].ID));
Просто смотри что я вижу в данной строчке, в качестве второго параметра ты передаешь ссылку на временный объект QVariant(tableList[i].ID), значение которого не факт, что копируется, а по завершению выполнения addItem уничтожается. Вот и получается, что в студии или в чем ты пишешь все работает, а на другом компьютере нет.

Покопай в эту сторону...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Wlad
  опции профиля:
сообщение 9.12.2008, 15:33
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 9.12.2008
Пользователь №: 450

Спасибо сказали: 0 раз(а)




Репутация:   1  


У себя я запускал программу вне IDE, и все Ok!
Но на всякий случай попробовал так, как советовал:

QVariant varStr;
for(int i=0; i < tableList.size(); ++i)
{
varStr = QVariant(tableList[i].ID);
QMessageBox::information(0,QObject::tr("Transform"),varStr.toString());
tableCombo->addItem(tableList[i].Name,varStr);
QMessageBox::information(0,QObject::tr("Transform"),QObject::tr("End addItem"));
}

До второго QMessageBox все равно не доходит. Зато теперь видно, что QVariant здесь не причем!!!
Первое сообщение то ЕСТЬ!
Значит загвоздка в этой строке :

tableCombo->addItem(tableList[i].Name,varStr);

Попробую посмотреть что происходит с QComboBox *tableCombo;

Проблема в том, что все это происходит в конструкторе. Окна я еще не вижу!
Попробую сделать так, чтобы увибеть окно, хтябы и не заполненное.

Спасибо за помощь! А то я тупо смртрел на QVariant !!!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 9.12.2008, 15:38
Сообщение #10


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(Wlad @ 9.12.2008, 15:33) *
Спасибо за помощь! А то я тупо смртрел на QVariant !!!
Ну так проблему еще ведь не решили! :)

Если не получится понять из-за чего и что, выложи побольше кода, попробуем вместе разобраться...

Как вариант проверь все ли в порядке у тебя с tableList, просто присвой временно левые значения...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.12.2024, 22:45