Название: сигналы и слоты Отправлено: ArhiZhek от Апрель 26, 2012, 17:08 объясните пожалуйста как сделать, чтоб одним сигналом (поочередным нажатием одной клавиши pushButton) вызывались 10 слотов тоже поочередно, т.е. 1нажатие - срабатывает 1 слот, 2 нажатие - срабатывает 2 слот и т.д.
я думаю, что нужно использовать цикл (счетчик нажатий), если я прав, то как его реализовать? Один сигнал может быть соединен со многими слотами: Код: connect(pushButton, SIGNAL(valueChanged(int)),spinBox, SLOT(setValue(int))); тут будут одновременно с нажатием pushButton вызываться 2 слота, а вот как сделать под мой вариант - никак не пойму Название: Re: сигналы и слоты Отправлено: Bepec от Апрель 26, 2012, 17:44 Зачем тебе сигналы тогда? Просто сделай 10 слотов. И счётчик. усё.
Название: Re: сигналы и слоты Отправлено: ArhiZhek от Апрель 26, 2012, 17:59 в общем идея такая: есть программа(наподобие калькулятора), все числа которые она посчитала перекидываются в эксель, получается некая табличка, потом она посчитала 2ой раз и снова надо перекинуть в ексель, но на этот раз надо построить 2ю таблицу ниже, так вот в 10 слотах я описал привязки к ячейкам(10 будущих таблиц - некие формы получились) теперь мне надо одним pushButton поочередно заполнять эти таблицы, т.е. поочередно вызывались 10 слотов...
не судите строго - я токо изучаю Qt, поэтому делаю как по проще Название: Re: сигналы и слоты Отправлено: alexis031182 от Апрель 26, 2012, 18:21 Здесь было бы удобно State Machine Framework (https://qt-project.org/doc/qt-4.8/statemachine-api.html) использовать
Название: Re: сигналы и слоты Отправлено: ArhiZhek от Апрель 26, 2012, 18:51 Здесь было бы удобно State Machine Framework (https://qt-project.org/doc/qt-4.8/statemachine-api.html) использовать к сожалению это слишком сложно ???Название: Re: сигналы и слоты Отправлено: iroln от Апрель 26, 2012, 19:28 Здесь было бы удобно State Machine Framework (https://qt-project.org/doc/qt-4.8/statemachine-api.html) использовать к сожалению это слишком сложно ???Название: Re: сигналы и слоты Отправлено: Igors от Апрель 26, 2012, 19:36 Ну и чего Вы мнетесь, делайте тот счетчик, напр
Код
Название: Re: сигналы и слоты Отправлено: ArhiZhek от Апрель 26, 2012, 20:17 но тут-то он работает только в одном void?
вот что я задумал: Код: connect(ui->pushButton_2, SIGNAL( clicked() ), SLOT(exportToExcel())); Название: Re: сигналы и слоты Отправлено: Igors от Апрель 26, 2012, 20:33 но тут-то он работает только в одном void? Ваша цель "обязательно 10 слотов" или "10 действий последовательно"? :)вот что я задумал: Код: connect(ui->pushButton_2, SIGNAL( clicked() ), SLOT(exportToExcel())); Если 10 слотов жизненно необходимы (не знаю зачем) тогда можно так Код И так 10 раз. В принципе та же state machine ну, мягко говоря, упрощенная Название: Re: сигналы и слоты Отправлено: ArhiZhek от Апрель 26, 2012, 20:47 но теперь он ругается на:
Код: disconnect(ui->pushButton_2, SIGNAL( clicked() ), SLOT(exportToExcel())); а это не зависит от того в какое место вставлю эти 2 строчки? Код: disconnect(ui->pushButton_2, SIGNAL( clicked() ), SLOT(exportToExcel())); Название: Re: сигналы и слоты Отправлено: Igors от Апрель 26, 2012, 21:05 но теперь он ругается на: Ошибка не зависит, результат выполнения зависит. Откройте букварь (Assistant) и посмотрите синтаксис вызова disconnect - это гораздо быстрее чем ждать ответа с форума. Вероятно пропущен параметрКод: disconnect(ui->pushButton_2, SIGNAL( clicked() ), SLOT(exportToExcel())); а это не зависит от того в какое место вставлю эти 2 строчки? Код: disconnect(ui->pushButton_2, SIGNAL( clicked() ), SLOT(exportToExcel())); Код: disconnect(ui->pushButton_2, SIGNAL( clicked() ), this, SLOT(exportToExcel())); Название: Re: сигналы и слоты Отправлено: ArhiZhek от Апрель 26, 2012, 21:12 ок! благодарю за помощь! все работает
|