crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Правильное преобразование типа, неясность
AD
  опции профиля:
сообщение 19.5.2008, 18:14
Сообщение #1


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

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


У меня есть класс, который наследуется от QThread. Компилятор позволяет, но а вообще правильно, если я указатель this этого класса преобразую к QWidget*?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 19.5.2008, 19:46
Сообщение #2


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

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

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




Репутация:   40  


Цитата(AD @ 19.5.2008, 19:14) *
правильно, если я указатель this этого класса преобразую к QWidget*?
Думаю что не правильно. Так как QThread унаследован от QObject.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.5.2008, 7:46
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


ну и QWidget, тоже от него. Тогда вроде и нормально.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 20.5.2008, 7:58
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

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




Репутация:   17  


Нет, неправильно.
Такое можно делать только если твой класс отнаследован одновременно и от TThread, и от QWidget.
Тогда приводится между ними можно с помощью dynamic_cast или qobject_cast.

Но, во первых Qt не поддерживает множественное наследование, в случае если более 1го базового класса являются наследниками QObject.
А во вторых, работать с виджетами можно только из главного потока, так что идея отнаследоваться одновременно от TThread и от QWidget кажется мне довольно неудачной.

Лучше просто опиши, что ты пытаешься изобресть. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 20.5.2008, 8:42
Сообщение #5


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

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Цитата
Нет, неправильно.
Такое можно делать только если твой класс отнаследован одновременно и от TThread, и от QWidget.
Тогда приводится между ними можно с помощью dynamic_cast или qobject_cast.

Но, во первых Qt не поддерживает множественное наследование, в случае если более 1го базового класса являются наследниками QObject.
А во вторых, работать с виджетами можно только из главного потока, так что идея отнаследоваться одновременно от TThread и от QWidget кажется мне довольно неудачной.

Лучше просто опиши, что ты пытаешься изобресть. :)

Спасибо за объяснение. Да уже понял что так нельзя. Ошибка выполнения возникала. Отказался от такого способа. Реализовал более правильным способом! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 26.12.2024, 15:06