许多关于Qt中信号和插槽的教程都在两个对话框之间进行双向数据交换。
在我的下面的例子中,我没有尝试交换任何数据,我试图在对话窗口的关闭(接受)上调用mainWindow类的updateComboBox方法。
如何调用MainWindow :: updateComboBox函数?
我是否需要在打开对话框的函数中使用插槽连接代码?
我正在使用Qt 5.1。
我对信号和插槽的尝试:
addGroup.h
signals:
void updateCombo();
addGroup.cpp
void addGroup::on_buttonBox_accepted()
{
...
qry...
if (qry.exec())
{
//connect(addGroup, SIGNAL(finished(int)), this, SLOT(updateCombo()));
//connect(this, SIGNAL(finished(int)), this, SLOT(updateCombo()));
emit updateCombo();
}
}
MainWindow.h
public slots:
void updateComboBox();
MainWindow.cpp
void MainWindow::updateComboBox()
{
...
qry...
}
解决方案:
QObject:connect(addGroup,SIGNAL(updateCb()), this, SLOT(updateComboBox()));
回答。我也忘记了1个尾随括号。
答案 0 :(得分:1)
您应该在插槽区域中添加updateComboBox方法,并按以下顺序键入(在您创建的功能中并显示对话框窗口):
addGroup ag;
QObject::connect(&ag,SIGNAL(updateCombo()),this,SLOT(updateComboBox()));