Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Perchilla от Январь 15, 2005, 00:08



Название: Контейнер кнопок
Отправлено: Perchilla от Январь 15, 2005, 00:08
Хочу сделать контейнер кнопок. Вернее сделал, с ним проблем нет. Проблема с другим: я ко всем кнопкам навязываю один сигнал. А вот как из сигнала определить какая из кнопок была нажата? Если это вобще возможно. Я так понимаю, что контейнер функций не сделать... Может есть другой способ: как по нажатию кнопки узнать какая из кнопок была нажата?


Название: Контейнер кнопок
Отправлено: Admin от Январь 15, 2005, 00:46
пример из доки QT

Foo a, b;
    connect(&a, SIGNAL(valueChanged(int)), &b, SLOT(setValue(int)));
    b.setValue( 11 ); // a == undefined  b == 11
    a.setValue( 79 ); // a == 79         b == 79
    b.value();        // returns 79        


Как я понял в сигнале можно переслать ID кнопки.


Название: Контейнер кнопок
Отправлено: Perchilla от Январь 15, 2005, 09:35
А если сигнал clicked() ? Просто я не понял причем здесь valueChanged(int). У меня кнопка QPushButton. Немного переформулирую свой вопрос: надо всем кнопкам (их неограниченное количество, грубо говоря динамический массив) навязать один и тот же обработчик нажатия  с передачей параметра - индекса кнопки в массиве.


Название: Контейнер кнопок
Отправлено: Rainbow от Январь 15, 2005, 15:19
Перегрузить клас QPushButton и сответсвено сигнал clicked с указателем на себя определить.


Название: Контейнер кнопок
Отправлено: Perchilla от Январь 16, 2005, 12:00
А можно пример, если не трудно. Только надо не указатель на себя, а порядковый номер, который будет задаваться в конструкторе  :roll:


Название: Контейнер кнопок
Отправлено: Racheengel от Январь 17, 2005, 13:18
читать тут:
http://hardclub.donntu.edu.ua/projects/qt/qq/qq10-signalmapper.html


Название: Контейнер кнопок
Отправлено: Perchilla от Январь 17, 2005, 14:24
Всем спасибо, я уже сделал. Оказалось изобрел велосипед, один в один с третьим способом в статье  :lol: .