crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> [QT] Множественное наследование
zss
  опции профиля:
сообщение 24.4.2010, 17:40
Сообщение #1


Участник
**

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

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




Репутация:   0  


QThread используется как базовый класс для widget, в котором необходимо запустить поток.
Но, например, widget уже наследуется от QDialog.

Они оба (QDialog и QThread) наследуются от QObject.
Сразу возникает проблема при множественном наследовании.

2 QObject и с сигналами и слотами для QObject неразбериха.
То есть получается наследникам от QWidget нельзя наследоваться от QThread ?

Или данную проблему можно как разрулить ?

З.Ы. Виртуальное наследование не пойдет, т.к. QThread и QWidget не унаследованы виртуально от QObject. Да и сигналы нужно как-то делить
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 24.4.2010, 18:46
Сообщение #2


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

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

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




Репутация:   1  


Ты хочешь как-то изменить поведение QDialog?т.е для чего тебе наследовать QDialog?
На вскидку, сделай отдельно виджет, отнаследованный от QDialog, и 2ой класс , отнаследованный от QThread, и пусть один объект из двух классов будет внутри кого-то :)

Сообщение отредактировал Andrewshkovskii - 24.4.2010, 18:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 24.4.2010, 19:58
Сообщение #3


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

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

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




Репутация:   94  


zss, виджеты могут жить в ТОЛЬКО в главном потоке, поэтому бессмысленно делать его наследником QThread
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zss
  опции профиля:
сообщение 24.4.2010, 21:06
Сообщение #4


Участник
**

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

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




Репутация:   0  


Цитата(Andrewshkovskii @ 24.4.2010, 19:46) *
Ты хочешь как-то изменить поведение QDialog?т.е для чего тебе наследовать QDialog?
На вскидку, сделай отдельно виджет, отнаследованный от QDialog, и 2ой класс , отнаследованный от QThread, и пусть один объект из двух классов будет внутри кого-то

ну агрегацию и сейчас и использую, но думал, что можно и по-другому.
Изменять поведение QDialog не нужно, надо лишь запускать поток

Цитата(Litkevich Yuriy @ 24.4.2010, 20:58) *
zss, виджеты могут жить в ТОЛЬКО в главном потоке, поэтому бессмысленно делать его наследником QThread

а сигналы и слоты, а события...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 24.4.2010, 21:30
Сообщение #5


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

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

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




Репутация:   94  


Цитата(zss @ 25.4.2010, 1:06) *
а сигналы и слоты, а события...
что "а сигналы и слоты ..."?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zss
  опции профиля:
сообщение 24.4.2010, 23:42
Сообщение #6


Участник
**

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

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 24.4.2010, 22:30) *
что "а сигналы и слоты ..."?

мне никто не мешает через них изменять GUI в первичном потоке
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.4.2010, 0:34
Сообщение #7


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

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

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




Репутация:   94  


Цитата(zss @ 25.4.2010, 3:42) *
мне никто не мешает через них изменять GUI в первичном потоке
нет никто не мешает, сигналы свободно передаются из потока в поток.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 20.6.2019, 10:07