Я создаю небольшую программу для обмена чатами, для которой нужен список каналов чата, к которым присоединился пользователь. Чтобы представить этот список графически, я составил список QPushButtons
, которые все представляют собой другой канал. Эти кнопки сделаны со следующим методом, и где моя проблема срабатывает:
void Messenger::addToActivePanels(std::string& channel)
{
activePanelsContents = this->findChild<QWidget *>(QString("activePanelsContents"));
pushButton = new QPushButton(activePanelsContents);
pushButton->setObjectName("pushButton");
pushButton->setGeometry(QRect(0, 0, 60, 60));
pushButton->setText("");
pushButton->setToolTip(QString(channel.c_str()));
pushButton->setCheckable(true);
pushButton->setChecked(false);
connect(pushButton, SIGNAL(clicked()), this, SLOT(switchTab(channel)));
}
(activePanelContents - это QWidget, который содержит список.)
Дело в том, что каждая кнопка должна вызывать метод switchTab(string& tabname)
при нажатии, включая конкретное имя канала как переменной. Однако эта реализация не работает, и я не смог выяснить, как правильно это сделать.