Sto facendo un piccolo programma di messaggistica chat, che richiede un elenco di canali di chat che l'utente ha aggiunto. Per rappresentare graficamente questo elenco, ho creato un elenco di QPushButtons
, che rappresentano tutti un altro canale. Questi pulsanti sono realizzati con il seguente metodo, ed è lì che il mio problema entra in gioco: (. ActivePanelContents è un QWidget che contiene l'elenco)Come passare le variabili ai metodi di slot in 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)));
}
Il punto è che ogni pulsante deve chiamare il metodo switchTab(string& tabname)
quando si fa clic, includendo il nome del canale specifico come variabile. Questa implementazione però non funziona e non sono stato in grado di scoprire come farlo correttamente.
essere a conoscenza delle avvertenze prima di utilizzare il QObject :: mittente nel tuo codice –
Non sei sicuro del motivo per cui il tuo post è stato minimizzato, ma grazie comunque. Hai aiutato molto – parsecer