Название: Как в параметре функции передать булеву переменную? Отправлено: ser1801 от Октябрь 25, 2009, 23:53 public slots:
void function (bool *i); //обьявление в заголовочном файле class.h void class::function(bool *i){ pushButton->setEnabled(i); } //тело функции в class.cpp connect(pushButton_3,SIGNAL(clicked()),this,SLOT(function(true))); //попытка соединить... Компилятор ругается на строчку с коннектом, говорит Object::connect: No such slot class::function(true) in class.cpp:32 Буду очень признателен если мне ктонить обьяснит что я делаю не так... Название: Re: Как в параметре функции передать булеву переменную? Отправлено: lit-uriy от Октябрь 26, 2009, 00:01 connect(pushButton_3,SIGNAL(clicked()),this,SLOT(function(true))); при соединении ничего не передаёшь!//попытка соединить... Втыкая вилку RJ45 в разъём сетевухи, ничего не передаёш в сетевуху - просто соединяешь. Передавать будет одна машина (QObject) другой через данное соединение Название: Re: Как в параметре функции передать булеву п Отправлено: Karl-Philipp от Октябрь 26, 2009, 00:03 ser1801,
у тебя в слоте указатель, а ты передаешь конкретное значение ??? P.S. Почему ты передаешь указатель на bool в слот? Мне кажется, что было бы лучше просто передавать значение bool. Название: Re: Как в параметре функции передать булеву переменную? Отправлено: ser1801 от Октябрь 26, 2009, 00:27 Чет я не пойму, можно ли таким образом что-либо передавать.
Т.е. есть ли способ активировать функцию с булевым параметром по средствам сигнала? Если да, то как это сделать? Название: Re: Как в параметре функции передать булеву переменную? Отправлено: ритт от Октябрь 26, 2009, 00:51 читай документацию.
или ищи по форуму. Название: Re: Как в параметре функции передать булеву переменную? Отправлено: kirill от Октябрь 26, 2009, 06:20 connect(pushButton_3,SIGNAL(clicked()),this,SLOT(function(bool *)));
указатель на bool это круто конечно Название: Re: Как в параметре функции передать булеву переменную? Отправлено: lit-uriy от Октябрь 26, 2009, 11:42 ser1801, в строчке:
connect(pushButton_3,SIGNAL(clicked()),... сигнал не имеет никакого параметра, стало быть в слот никаких данных не попадёт. Если у тебя есть слот: mySlot(ArgType arg), и нужно передавать аргумент, то и сигнал нужно подобрать с таким же типом аргумента (если такой сигнал у объекта есть). Название: Re: Как в параметре функции передать булеву переменную? Отправлено: SABROG от Октябрь 26, 2009, 17:22 connect(pushButton_3,SIGNAL(clicked()),this,SLOT(function(bool *))); указатель на bool это круто конечно Иногда по другому будет сложнее сделать, например в методе QString нужно возвратить сразу 2 параметра: int QString::toInt ( bool * ok = 0, int base = 10 ) const Название: Re: Как в параметре функции передать булеву переменную? Отправлено: kirill от Октябрь 27, 2009, 06:08 connect(pushButton_3,SIGNAL(clicked()),this,SLOT(function(bool *))); указатель на bool это круто конечно Иногда по другому будет сложнее сделать, например в методе QString нужно возвратить сразу 2 параметра: int QString::toInt ( bool * ok = 0, int base = 10 ) const Особенно если глянуть на его использование bool Код: void class::function(bool *i){ Название: Re: Как в параметре функции передать булеву переменную? Отправлено: SASA от Ноябрь 03, 2009, 19:32 Если у тебя есть слот: mySlot(ArgType arg), и нужно передавать аргумент, то и сигнал нужно подобрать с таким же типом аргумента (если такой сигнал у объекта есть). Или можно сделать слот со значением по умолчанию. Тогда коннект пройдёт. В данном случае: Код: public slots: Код: public slots: |