Название: Проблема с QAction Отправлено: HunteX от Июня 04, 2011, 12:49 Всем привет! Имеются 2 формы (MainForm и Configs). Из первой формы вызываю вторую таким образом:
Код
Добавил форму Configs к проекту и создал configs.h: Код
configs.cpp: Код
На этой форме содержится кнопка btnSave, при нажатии на которую должен срабатывать слот Configs::SaveConfigs(). Этого не происходит. Если меняю слот, скажем так: Код То всё работает без проблем (close() срабатывает и форма закрывается) ... Подскажите, в чем ошибка ? P.S. Пишу на Visual Studio 2010 с Qt Add-In. С Уважением, Андрей. Название: Re: Проблема с QAction Отправлено: alexman от Июня 04, 2011, 13:00 Цитировать На этой форме содержится кнопка btnSave, при нажатии на которую должен срабатывать слот Configs::SaveConfigs(). Этого не происходит. А ты как это проверяешь?Название: Re: Проблема с QAction Отправлено: kambala от Июня 04, 2011, 13:01 эм, а зачем MessageBoxA()? чем не устраивает QMessageBox::information() например?
может быть программе не нравится вызов этой WinAPI функции... пробовал ставить брейкпоинт в SaveConfigs() или добавлять туда какой-нить qDebug() для проверки? Название: Re: Проблема с QAction Отправлено: HunteX от Июня 04, 2011, 13:02 Для проверки я ставлю тут брекпоинт, определяю, что слот тупо не вызывается :(
Название: Re: Проблема с QAction Отправлено: kambala от Июня 04, 2011, 13:06 а вообще подожди, у QDialog уже ж есть кнопка ОК и есть слот accepted() - зачем выдумывать велосипед?
Название: Re: Проблема с QAction Отправлено: madRoger от Июня 04, 2011, 13:07 Ничего не забыл ?
Код: class Configs : public QDialog Может так поможет : Код: class Configs : public QDialog Название: Re: Проблема с QAction Отправлено: GreatSnake от Июня 04, 2011, 13:07 В тело класса Configs забыл вставить Q_OBJECT.
Название: Re: Проблема с QAction Отправлено: GreatSnake от Июня 04, 2011, 13:09 а вообще подожди, у QDialog уже ж есть кнопка ОК и есть слот accepted() - зачем выдумывать велосипед? "Save" не значит "Accept/Close" )Название: Re: Проблема с QAction Отправлено: HunteX от Июня 04, 2011, 13:16 Спасибо, помогло добавление Q_OBJECT! Глупая ошибка :)
Вот еще что хотел узнать: в Visual Studio при вызове Qt Designer нельзя создавать слоты при правом клике мышкой, скажем на кнопку. Видимо это специально сделано? То есть получается, что форма никак не связана с кодом, точнее такового просто нет, наверное именно из-за этого слоты не добавляются? И примерно такой же вопрос, связанный с Qt Creator: К примеру, добавил сигнал к кнопке, указал слот. Где именно создается эта связь ? Или там существуют преопределенные слоты? К примеру Код
|