Почему не работает на другом копьютере |
Здравствуйте, гость ( Вход | Регистрация )
Почему не работает на другом копьютере |
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: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 |
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 |
Спасибо за помощь! А то я тупо смртрел на QVariant !!! Ну так проблему еще ведь не решили! Если не получится понять из-за чего и что, выложи побольше кода, попробуем вместе разобраться... Как вариант проверь все ли в порядке у тебя с tableList, просто присвой временно левые значения... |
|
|
Текстовая версия | Сейчас: 23.12.2024, 19:31 |