crossplatform.ru

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


  Ответ в [Qt 4.5.0] QItemSelection и Qt::QueuedConnection
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 23.6.2009, 20:35
  QItemSelection - это ГПИ и, возможно, поэтому так происходит.
SABROG Дата 23.6.2009, 11:14
  Попытался сделать соединение как Qt::QueuedConnection:

        connect(tbvList->selectionModel(),
                SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)),
                SLOT(tbvList_selChanged(const QItemSelection &, const QItemSelection &)), Qt::QueuedConnection);


И получил такую ошибку. Чего это он?

QObject::connect: Cannot queue arguments of type 'QItemSelection'
(Make sure 'QItemSelection' is registered using qRegisterMetaType().)


А вдруг мне понадобится такое соединение, чтобы узнать в другом потоке какой итем выбран, там ведь только Qt::QueuedConnection прокатит.
---
Я конечно понимаю, что ошибку можно обойти так:

qRegisterMetatType<QItemSelection>("QItemSelection");


Да и использовать GUI совместно с потоками нежелательно. Но у меня даже цель другая была, не поточная. Просто хотел минимизировать возможное влияние другого QEventLoop'a (навеяло из другой темы). И вот интересно кто недоглядел Qt или я?
---
Документация говорит следующее:

Цитата
Note that if you intend to use the type in queued signal and slot connections or in QObject's property system, you also have to call qRegisterMetaType() since the names are resolved at runtime.

Но QItemSelection врятли можно отнести к custom type. Хотя я и не исключаю того варианта, что сделано это было, чтобы не захламлять массив зарегистрированных типов в Qt, которые могут редко использоваться.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 17:05