Вместо кнопок вы можете использовать QListWidget, содержащий выбираемые значки. QListWidget имеет метод с именем QListWidget::currentItemChanged ( QListWidgetItem * current, QListWidgetItem * previous )
. Я использовал этот метод в программе, которую написал некоторое время назад ... Там я написал функцию on_change_widget( QListWidgetItem *current, QListWidgetItem *previous )
, которую подключил к СИГНАЛУ currentItemChanged
:
connect( my_list_widget,
SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)),
this,
SLOT(on_change_widget(QListWidgetItem *, QListWidgetItem *))
);
Это должно сработать.
Вы должны взглянуть на пример диалога Config , там они используют тот же метод для замены виджетов.
Конечно, вы также можете использовать обычные кнопки в связи с упомянутым халапом QSignalMapper.