//自动播放 void AdClient::autoPlayTimeOut() { QList<QString> keyList = qMapPicturePath.keys();//存放的就是QMap的key值 QImage image=qMapPicturePath.value(keyList.at(index)); QTimer::singleShot(100,this,SLOT(showImage(image))); index++; if(index==qMapPicturePath.count()) index=0; } 报错QObject::connect: No such slot AdClient::showImage(image) in adclient.cpp:91 QObject::connect: (receiver name: 'AdClient')
时间: 2023-03-27 19:05:13 浏览: 69
这是一个关于编程的问题,我可以回答。这个错误是因为在连接槽函数时,槽函数的参数不匹配。在这个例子中,showImage() 函数需要一个 QImage 类型的参数,但是在连接槽函数时并没有传递参数。您需要修改连接槽函数的代码,以确保传递正确的参数。
相关问题
//设置警报 void AdClient::GUI_WarningMsg(QString title, QString text, QString buttons, QString defaultButton) { Q_UNUSED(buttons)//忽略编译器发出的警告,表明变量event未使用 Q_UNUSED(defaultButton) QMessageBox::warning(this,title,text); QTimer::singleShot(5000,this,SLOT(closeTimeOutMsgBox_slot()));// 5s后必执行 return; } //自动确定 void AdClient::closeTimeOutMsgBox_slot() { if(!QMessageBox::isHidden()) { QMessageBox::accept(); } }如何解决自动确定
问题的方法是在 closeTimeOutMsgBox_slot 函数中添加一个判断,如果消息框已经被关闭,则不执行自动确定的操作。可以使用 QMessageBox::isHidden() 函数来判断消息框是否已经被关闭。代码如下:
void AdClient::closeTimeOutMsgBox_slot() {
if(!QMessageBox::isHidden() && QMessageBox::isVisible()) {
QMessageBox::accept();
}
}