Estoy haciendo un pequeño programa de chat de mensajería, que necesita una lista de canales de chat al usuario se ha unido. Para representar gráficamente esta lista, hice una lista de QPushButtons
, que representan un canal diferente. Estos botones se hacen con el método siguiente, y ahí es donde mi problema entra en acción: (. ActivePanelContents es una QWidget que mantiene la lista)¿Cómo pasar variables a los métodos de ranura en QT?
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)));
}
El punto es que cada botón debe llamar al método switchTab(string& tabname)
cuando se hace clic, incluido el nombre del canal específico como variable. Sin embargo, esta implementación no funciona, y no he podido averiguar cómo hacer esto correctamente.
estar al tanto de las advertencias antes de utilizar el QObject :: emisor en su código –
No estoy seguro de por qué su publicación fue minimizada, pero gracias de todos modos. Has ayudado mucho – parsecer