Название: интерфейс, логика и общие данные Отправлено: Senia_Bezrubashkin от Октябрь 05, 2013, 18:01 Данные используются, и в интерфейсе пользователя (отображаются в текстовом поле), и в логике приложения (производятся вычисления)... логика и интерфейс разнесены по разным классам. Как разрешить ситуацию с общими данными?... Отдельно в заголовочном файле определить и линковать к каждому из классов? Или есть еще какой способ?
Заранее спасибо. Название: Re: интерфейс, логика и общие данные Отправлено: Senia_Bezrubashkin от Октябрь 09, 2013, 12:51 Есть два класса:
Код: class Widget : public QWidget Код: void Widget::slotFind(const QModelIndex &index) Заранее спасибо. Название: Re: интерфейс, логика и общие данные Отправлено: mutineer от Октябрь 09, 2013, 13:07 после клика на директории должен вызываться слот, но ничего не происходит. После второго клика слот отрабатывает как надо. После третьего клика слот отрабатывает два раза, после четвертого - три и т.д. Что не так делаю? Коннект производишь в обработчике клика, скорее всегоЗаранее спасибо. Если клик на директории - это вызов slotFind, а нужный слот это slot_consider, то ошибка еще и в том, что сигнал высылается до его присоединения к слоту Название: Re: интерфейс, логика и общие данные Отправлено: Senia_Bezrubashkin от Октябрь 09, 2013, 13:45 Коннект производишь в обработчике клика, скорее всего Да, слот slotFind обработчик клика:Код: QObject::connect(treeView_1, SIGNAL(clicked(const QModelIndex &)), this, Название: Re: интерфейс, логика и общие данные Отправлено: mutineer от Октябрь 09, 2013, 13:53 Потому что сколько раз сигнал со слотом соединишь, столько раз слот и вызовется на одну высылку сигнала
Название: Re: интерфейс, логика и общие данные Отправлено: Senia_Bezrubashkin от Октябрь 09, 2013, 14:00 Потому что сколько раз сигнал со слотом соединишь, столько раз слот и вызовется на одну высылку сигнала Так у меня одно соединение. Название: Re: интерфейс, логика и общие данные Отправлено: mutineer от Октябрь 09, 2013, 14:02 Потому что сколько раз сигнал со слотом соединишь, столько раз слот и вызовется на одну высылку сигнала Так у меня одно соединение. Ты при каждом клике вызываешь connect, поэтому количество соединений увеличивается Название: Re: интерфейс, логика и общие данные Отправлено: Senia_Bezrubashkin от Октябрь 09, 2013, 14:53 disconnect() разрешил ситуацию... сенкс.
Название: Re: интерфейс, логика и общие данные Отправлено: mutineer от Октябрь 09, 2013, 14:54 Жуть. Почему бы не соединиться только одни раз, вне этого слота?
Название: Re: интерфейс, логика и общие данные Отправлено: Senia_Bezrubashkin от Октябрь 09, 2013, 15:01 индекс не могу получить вне слота который обрабатывает клик.
Название: Re: интерфейс, логика и общие данные Отправлено: mutineer от Октябрь 09, 2013, 15:18 Для коннекта индекс не нужен
Название: Re: интерфейс, логика и общие данные Отправлено: Senia_Bezrubashkin от Октябрь 09, 2013, 15:32 но мне нужен сигнал, который эмитится с переменной dir, а она формируется на основе конкретного индекса.
Название: Re: интерфейс, логика и общие данные Отправлено: mutineer от Октябрь 09, 2013, 15:33 Ну так emit делай в слоте, а коннект один раз вне слота
Название: Re: интерфейс, логика и общие данные Отправлено: Senia_Bezrubashkin от Октябрь 09, 2013, 15:43 Ну так emit делай в слоте, а коннект один раз вне слота Ну, так и сделал... Название: Re: интерфейс, логика и общие данные Отправлено: mutineer от Октябрь 09, 2013, 15:47 А первый твой вопрос лично мне непонятен
Название: Re: интерфейс, логика и общие данные Отправлено: Senia_Bezrubashkin от Октябрь 09, 2013, 15:55 Мне нужно данные после обработки из потока обратно вернуть (в основной поток)... а пока замкнутый круг... в Widget'е объявляю Thread, чтобы их туда переслать, а чтобы их обратно, типа, вернуть нужно в Thread'е Widget объявлять... других идей не приходит в голову.
Название: Re: интерфейс, логика и общие данные Отправлено: mutineer от Октябрь 09, 2013, 15:59 connect тебе в этом поможет - высылаешь из треда сигнал с данными и ловишь его в виджете
Название: Re: интерфейс, логика и общие данные Отправлено: Senia_Bezrubashkin от Октябрь 09, 2013, 16:00 все получилось... спасибо.
|