Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Day от Март 06, 2013, 23:20



Название: Нестндартный выход из диалога
Отправлено: Day от Март 06, 2013, 23:20
Создаю диалог, на котором помимо стандартных кнопок Ok, Cancel есть еще другие. Хочется, чтобы при нажатии на них d->exec() возвращал какие-то специфические значения. Нашел такое решение. Сделал производный класс
Код:
class MyDialog : public QDialog {
 ...
public slot:
  void myslot() { done(3); }
};
При создании кнопок
Код:
connect(button3, SIGNAL(clicked()), d, SLOT(myslot()));
Все работает, но хочется попроще.
Вот если бы была допустима такая конструкция
Код:
connec(button3, SIGNAL(clicked()), d, SLOT(done(3)));
тогда не надо было б порождать новый класс из-за одного слотика.
Можно ли в данном случае обойтись без порождения?


Название: Re: Нестндартный выход из диалога
Отправлено: Day от Март 06, 2013, 23:25
Попутно вопрос об оформлении кода. Работают ли здесь теги [CPPQT], [CPP], [C] ? или следует ограничиться code ?


Название: Re: Нестндартный выход из диалога
Отправлено: kambala от Март 07, 2013, 01:55
такая конструкция делается через QSignalMapper

для красивого оформления кода используй code=cpp


Название: Re: Нестндартный выход из диалога
Отправлено: Hellraiser от Март 07, 2013, 07:37
Можно попробовать через QButtonGroup (http://qt-project.org/doc/qt-4.8/qbuttongroup.html#details). Для задания нужного кода используется setId (http://qt-project.org/doc/qt-4.8/qbuttongroup.html#setId)


Название: Re: Нестндартный выход из диалога
Отправлено: Hellraiser от Март 07, 2013, 07:41
Если будет необходимость добавлять QButtonGroup сразу в дизайнере, то ПКМ на кнопке - назначить группу кнопок.


Название: Re: Нестндартный выход из диалога
Отправлено: Day от Март 07, 2013, 09:29
такая конструкция делается через QSignalMapper
Да... Вещь полезная, но в данном случае то, что уже сделано, выглядит проще. А главное - уже сделано и работает.

Цитировать
для красивого оформления кода используй code=cpp
Спасибо.
Можно попробовать через QButtonGroup (http://qt-project.org/doc/qt-4.8/qbuttongroup.html#details). Для задания нужного кода используется setId (http://qt-project.org/doc/qt-4.8/qbuttongroup.html#setId)
Спасибо. Мотаю на ус для будущих применений :)