Название: Как связать три QRadioButton с данными Отправлено: dr_Begemot от Апрель 08, 2009, 15:13 Есть три QRadioButton - rb1, rb2 rb3? и некоторая переменная int val.
В классе есть слот setVal(int) и сигнал valChanged(int). Как сделать связь так, чтобы в зависимости от того, какая QRadioButton выбрана переменная меняла свое значение от 0 до 2? Спасибо) Название: Re: Как связать три QRadioButton с данными Отправлено: spirit от Апрель 08, 2009, 15:22 см. QSignalMapper.
Название: Re: Как связать три QRadioButton с данными Отправлено: pastor от Апрель 08, 2009, 15:32 Есть три QRadioButton - rb1, rb2 rb3? и некоторая переменная int val. В классе есть слот setVal(int) и сигнал valChanged(int). Как сделать связь так, чтобы в зависимости от того, какая QRadioButton выбрана переменная меняла свое значение от 0 до 2? Спасибо) Есть QButtonGroup. Объедени QRadioButtons в группу и сипользуй сигнал QButtonGroup::buttonClicked(int id) Название: Re: Как связать три QRadioButton с данными Отправлено: Racheengel от Апрель 08, 2009, 16:33 +1
Название: Re: Как связать три QRadioButton с данными Отправлено: dr_Begemot от Апрель 10, 2009, 10:21 Возникли некоторые вопросы...
В классе, порожденном от некоторого виджета делаю следующие коннекты: Код: PropertyAxisView::PropertyAxisView(QWidget *parent) : QDialog(parent) Дальше другой класс PropertyAxis получает указатель на экземпляр PropertyAxisView и пытается приконектится к его сигналу tickLabelChanged. Надо заметить, что сигнал tickLabelChanged есть в обеих классах, но не думаю что это имеет какое-то значение т.к. я пробовал изменить название функции в одном из классов и все равно приведенный ниже коннект не работал. Код: void PropertyAxis::ConnectView(){ Функция view() класса PropertyAxis возвращает указатель на заданный экземпляр PropertyAxisView. Проблема в том, что данный коннект не срабатывает и значение result = false. Название: Re: Как связать три QRadioButton с данными Отправлено: pastor от Апрель 10, 2009, 10:39 Покажи *.h файлы
Название: Re: Как связать три QRadioButton с данными Отправлено: dr_Begemot от Апрель 10, 2009, 12:01 Покажи *.h файлы PropertyAxisView.h: Код: #ifndef PROPERTYAXISVIEW_H PropertyAxis.h: Код: #ifndef PROPERTYAXIS_H Название: Re: Как связать три QRadioButton с данными Отправлено: pastor от Апрель 10, 2009, 12:06 У тебя setTickLabel принимает тип TickLabel, а в коннекте учавствует int. Посмотри на консоль\out put что там пишется при попытке коннекта?
Кстате, с QButtonGroup код бы получился проще Название: Re: Как связать три QRadioButton с данными Отправлено: dr_Begemot от Апрель 10, 2009, 12:16 У тебя setTickLabel принимает тип TickLabel, а в коннекте учавствует int. Посмотри на консоль\out put что там пишется при попытке коннекта? Кстате, с QButtonGroup код бы получился проще Действительно... Уже начал с помощью QButtonGroup реализовывать, но там получается та же проблема... При попытке сконектиться connect(view()->bGTickLocations, SIGNAL(buttonClicked(int)), this, SLOT(setTickLocations(TickLocations))); где bGTickLocations это QButtonGroup, выводится сообщение:"QObject::connect: Incompatible sender/receiver arguments" Думаю надо сделать 2й setTickLocations(int): Код: setTickLocations(int val){ Как думаешь? Или есть выход поэлегантней? Название: Re: Как связать три QRadioButton с данными Отправлено: pastor от Апрель 10, 2009, 12:42 Как думаешь? Или есть выход поэлегантней? можно сделать вот такой вот слот: Код
Коннект тогда будет выглядеть так: Код
ЗЫ: А это что такое: view()->bGTickLocations? Я так понимаю bGTickLocations это QButtonGroup? Сделай нетак: оставь сингал void tickLabelChanged(int); в PropertyAxisView, сделай коннект: Код
и тогда коннект в PropertyAxis приймент вид: Код
имхо Название: Re: Как связать три QRadioButton с данными Отправлено: dr_Begemot от Апрель 10, 2009, 13:23 можно сделать вот такой вот слот: Отличное предложение!... имхо Спасибо, так и сделаю) |