crossplatform.ru

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

> Ошибка invalid conversion from `QWidget*' to `QComboBox*'
kvak
  опции профиля:
сообщение 16.9.2010, 11:47
Сообщение #1


Студент
*

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

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




Репутация:   0  


Имеется:
QComboBox *oe_units;
*PM - объекта собственного класса
*TABLE_ELITE - таблица QTableWidget, которая является данным класса, который представляет объект PM

Не рабоатает вот такая нструкция:
oe_units = PM->TABLE_ELITE->cellWidget(e, f);

Код ошибки:
code\order.cpp:104: error: invalid conversion from `QWidget*' to `QComboBox*'

Задача получить через функцию cellWidget, выполненную для таблицы, которая принадлежит классу,
представленному объектом PM, указатель на тот самый виджет. К этому времени в этой ячейке с адресом
(e, f) находится виджет QComboBox.
Так как функция cellWidget возвращает указатель полученного виджета, то по идее мой указатель oe_units
должен после выполнения инструкции указывать на тот самый виджет. Сам виджет QComboBox не приватный.

В чем тут может быть ошибка ? Правильная ли сама инструкция ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 16.9.2010, 21:50
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


Цитата(kwisp @ 17.9.2010, 0:42) *
т.е. ты всегда уверен что приведение закончится успешно?

конечно :) Это лишь снятие ответственности с компилятора, который паникует при попытке присвоить адрес объекта типа родителя указателю на объекта типа дитёнка (наоборот можно, он даже не пикнет). Более ничего при этом не происходит


Цитата(kwisp @ 17.9.2010, 0:42) *
та легко.
при освобождении памяти ты даешь delete указатель - как по адресу delete определяет сколько памяти освободить? каков размер обЪекта?

это не пример. Во первых, АДРЕС не поменяется от этого. Во вторых, для таких случаев должен быть виртуальный деструктор, либо ты уж учитывай, какой тип удаляется и приведи его перед удалением

А DEADHUNT говорил
Цитата(DEADHUNT @ 17.9.2010, 0:16) *
адреса вообще-то тоже требуется корректировать


DEADHUNT, в твоём примере адрес не меняется и не корректируется тоже )

я вредное, я знаю... Но пока не увидел убедительных объяснений обязаловки применения каста :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- kvak   Ошибка invalid conversion from `QWidget*' to `QComboBox*'   16.9.2010, 11:47
- - Алексей1153   приведи тип указателя (на свой страх и риск - след...   16.9.2010, 11:50
- - molchanoviv   проверь не стоит ли у тебя в oe_units = new QCombo...   16.9.2010, 11:52
- - igor_bogomolov   oe_units = qobject_cast<QComboBox*>(PM...   16.9.2010, 11:55
- - kwisp   Цитата(Алексей1153 @ 16.9.2010, 12:50) oe...   16.9.2010, 12:24
- - Алексей1153   Цитата(kwisp @ 16.9.2010, 15:24) *. не на...   16.9.2010, 12:49
- - kwisp   Цитата(Алексей1153 @ 16.9.2010, 13:49) вс...   16.9.2010, 13:43
- - Алексей1153   Цитата(kwisp @ 16.9.2010, 16:43) тогда мо...   16.9.2010, 14:09
- - kwisp   Цитата(Алексей1153 @ 16.9.2010, 15:09) я ...   16.9.2010, 14:45
- - Litkevich Yuriy   Цитата(kwisp @ 16.9.2010, 16:24) даже в С...   16.9.2010, 14:48
- - kwisp   Цитата(Litkevich Yuriy @ 16.9.2010, 15:48...   16.9.2010, 14:55
|- - kvak   А если в этом случае oe_units = qobject_cast<Q...   16.9.2010, 16:00
- - igor_bogomolov   oe_units будет равна нулю. Не забывай делать прове...   16.9.2010, 16:02
- - Алексей1153   Цитата(Litkevich Yuriy @ 16.9.2010, 17:48...   16.9.2010, 21:10
- - DEADHUNT   Цитата(Алексей1153 @ 16.9.2010, 22:10) во...   16.9.2010, 21:16
- - kwisp   Алексей1153, он тебе вообще про приведение типов ...   16.9.2010, 21:18
- - Алексей1153   Цитата(DEADHUNT @ 17.9.2010, 0:16) адреса...   16.9.2010, 21:28
- - kwisp   Цитата(Алексей1153 @ 16.9.2010, 22:28) не...   16.9.2010, 21:42
- - DEADHUNT   Цитата(Алексей1153 @ 16.9.2010, 22:28) хо...   16.9.2010, 21:46
- - Алексей1153   Цитата(kwisp @ 17.9.2010, 0:42) т.е. ты в...   16.9.2010, 21:50
|- - BRE   Цитата(Алексей1153 @ 16.9.2010, 22:50) я ...   16.9.2010, 22:06
- - kwisp   Цитата(Алексей1153 @ 16.9.2010, 22:49) эт...   16.9.2010, 22:00
- - DEADHUNT   Цитата(BRE @ 16.9.2010, 23:06) Сишное пре...   16.9.2010, 22:10
|- - BRE   Цитата(DEADHUNT @ 16.9.2010, 23:10) в при...   16.9.2010, 22:17
- - kwisp   Цитата(Алексей1153 @ 16.9.2010, 22:50) Но...   16.9.2010, 22:11
- - DEADHUNT   Цитата(BRE @ 16.9.2010, 23:17) Мы говорим...   16.9.2010, 22:27
- - Алексей1153   BRE, ну ты каких-то далёких от реальной жизни извр...   16.9.2010, 22:28
|- - BRE   Цитата(Алексей1153 @ 16.9.2010, 23:28) ук...   16.9.2010, 22:33
- - kwisp   Цитата(Алексей1153 @ 16.9.2010, 23:28) не...   16.9.2010, 22:31
- - Алексей1153   BRE, я такие ошибки не допускаю ) Цитата(kwisp ...   16.9.2010, 22:38


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


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




RSS Текстовая версия Сейчас: 28.1.2025, 21:03