Russian Qt Forum
Ноябрь 27, 2024, 06:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: как запустить событие из другого окна  (Прочитано 2294 раз)
sergun1604
Гость
« : Сентябрь 28, 2010, 16:09 »

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

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

Помогите советом...
Записан
Vanoor
Гость
« Ответ #1 : Сентябрь 28, 2010, 16:32 »

Скорее всего конект подключил не там, в твоем случае connect() нада вызывать из родительского окна (тобиш от туда де табле вью у тебя), и цеплять сигнал непосредственно к объекту окна диалога который ты создаеш. Мне кажтся как то так. Хотя я еще ньюбер и энто ток мае мнение.
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #2 : Сентябрь 28, 2010, 20:33 »

Абсолютно непонятная конструкция &nomen(this)

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

connect(ui->buttonBox, SIGNAL(accepted()), nomen, SLOT(nom()));
Записан
sergun1604
Гость
« Ответ #3 : Сентябрь 29, 2010, 09:59 »

Все получилось спасибо за участие, но пошел немного другим путем
Опубликовал событие в номене public: void nom();
Дальше в дочернем окне в слоте у кнопки прописал  nomen(this).nom();
И все встало нга круги своя спасибо всем.
Можно ставить решено
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.12 секунд. Запросов: 22.