Russian Qt Forum

Qt => Общие вопросы => Тема начата: sergun1604 от Сентябрь 28, 2010, 16:09



Название: как запустить событие из другого окна
Отправлено: sergun1604 от Сентябрь 28, 2010, 16:09
Здравствуйте Отцы!
Очень рад что есть Qt и этот форум. (Попал в мои закладки)
Есть проблема - у меня в приложении есть диалоговое окно в котором отображается база данных
вопрос как мне из другого диалогового окна обновить эту базу.
(Обьясню поподробней: есть окно (номенклатура) в ней юзер выбирает товар (двумя щелчками) появляется второе окно где его спрашивают о количестве. Он вводит количество и щелкает кнопку Ок. Данные вводятся в базу и окно исчезает. Необходимо обновить tableView дабы юзер понял что он выбрал и в каком количестве.

Такая трабла почему то не робит QObject::connect(ui->buttonBox, SIGNAL(accepted()), &nomen(this), SLOT(nom()));
nomen это окно номенклатуры где tableView
nom там обработчик на обновление

Помогите советом...


Название: Re: как запустить событие из другого окна
Отправлено: Vanoor от Сентябрь 28, 2010, 16:32
Скорее всего конект подключил не там, в твоем случае connect() нада вызывать из родительского окна (тобиш от туда де табле вью у тебя), и цеплять сигнал непосредственно к объекту окна диалога который ты создаеш. Мне кажтся как то так. Хотя я еще ньюбер и энто ток мае мнение.


Название: Re: как запустить событие из другого окна
Отправлено: Mikhail от Сентябрь 28, 2010, 20:33
Абсолютно непонятная конструкция &nomen(this)

Здесь должен быть указатель на объект обрабатывающий сигнал.
Если nomen указатель на окно номенклатуры где tableView и ты его передал во второе окно где его спрашивают о количестве, то используй

connect(ui->buttonBox, SIGNAL(accepted()), nomen, SLOT(nom()));


Название: Re: как запустить событие из другого окна
Отправлено: sergun1604 от Сентябрь 29, 2010, 09:59
Все получилось спасибо за участие, но пошел немного другим путем
Опубликовал событие в номене public: void nom();
Дальше в дочернем окне в слоте у кнопки прописал  nomen(this).nom();
И все встало нга круги своя спасибо всем.
Можно ставить решено