我有一个mainWindow类,当双击QTabBar时调用函数mainWIndow::ShowDialogBox()。会出现对话框,但它没有连接按钮。我有ShowDialogBox的连接电话。它在连接上给了我红色的下划线
no instance of overloaded function "MainWindow::connect" matches the argument list"这是我的密码
bool MainWindow::eventFilter(QObject *object, QEvent *event)
{
if (object == mTabWidget->getTabBar() && event->type() == QEvent::MouseButtonDblClick)
{
qDebug()<<"dblclk";
ShowDialogBox();
}
return QObject::eventFilter(object, event);
}
//Show dialog box when double clicked on QTabBar
void MainWindow::ShowDialogBox(){
QDialog dialog;
QVBoxLayout layout(&dialog);
QLineEdit editLine;
layout.addWidget(&editLine);
QDialogButtonBox *dialogButton = new QDialogButtonBox(QDialogButtonBox::Ok );
connect(dialogButton, SIGNAL(accepted()), dialog, SLOT(accept())); //this 'connect' is underlined
layout.addWidget(dialogButton);
dialog.setLayout(&layout);
if(dialog.exec() == QDialog::Accepted)
{
mTabWidget->setTabText(0, editLine.text());
}
}我在mainWindow.h中添加了信号和插槽
private slots:
void accept();
signals:
void accepted();我花了好几个小时在这件事上,但没有运气。我对Qt很陌生。
发布于 2014-11-22 21:57:45
行:
connect(dialogButton, SIGNAL(accepted()), dialog, SLOT(accept()));应:
connect(dialogButton, SIGNAL(accepted()), &dialog, SLOT(accept()));因为第三个参数必须是一个内存地址(指针)。
https://stackoverflow.com/questions/27081130
复制相似问题