Ошибка invalid conversion from `QWidget*' to `QComboBox*' |
Здравствуйте, гость ( Вход | Регистрация )
Ошибка 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 не приватный. В чем тут может быть ошибка ? Правильная ли сама инструкция ? |
|
|
DEADHUNT |
16.9.2010, 22:10
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
Сишное преобразование ничего не контролирует, с его помошью я могу преобразовать QString к QWidget, последствия правда будут не хорошие. в принципе всё контролирует кроме dynamic_cast Цитата 5.4 Explicit type conversion (cast notation) [expr.cast] 1 The result of the expression (T) cast-expression is of type T. The result is an lvalue if T is an lvalue reference type or an rvalue reference to function type and an xvalue if T is an rvalue reference to object type; otherwise the result is a prvalue. [ Note: if T is a non-class type that is cv-qualified, the cv-qualifiers are ignored when determining the type of the resulting prvalue; see 3.10. — end note ] 2 An explicit type conversion can be expressed using functional notation (5.2.3), a type conversion operator (dynamic_cast, static_cast, reinterpret_cast, const_cast), or the cast notation. cast-expression: unary-expression ( type-id ) cast-expression 3 Any type conversion not mentioned below and not explicitly defined by the user (12.3) is ill-formed. 4 The conversions performed by — a const_cast (5.2.11), — a static_cast (5.2.9), — a static_cast followed by a const_cast, — a reinterpret_cast (5.2.10), or — a reinterpret_cast followed by a const_cast, поэтому возможно придумать некоторый пример с полиморфными классами где будет применён reinterpret_cast. |
|
|
Текстовая версия | Сейчас: 15.1.2025, 17:07 |