在Qt中关闭子对话窗口时调用函数

时间:2015-04-09 21:38:41

标签: c++ database qt n-tier-architecture

在尝试了多种组合后,当另一个对话框关闭时,我无法让Qt在我的主窗口对话框中调用一个函数。

我看了一下,用信号和插槽尝试了一些东西,但无济于事: QObject::connect( edit_dialog, SIGNAL( finished(int) ), this, refresh_table() );

简而言之,我有一个显示自定义容器数据的表。 edit_dialog允许编辑值并通过一组外部函数(它们工作)将更改直接发送到数据库。但是一旦该对话框关闭,我想让表重新加载来自容器的更新数据,该数据从数据库中提取数据。

Db-> Container-> GUI表

我意识到Qt有用于读取/写入DB的本机库,但这对我的目的没有好处。我需要一种方法来自动调用refresh_table()功能,我已尝试将其放入公共广告位'没有任何成功。

1 个答案:

答案 0 :(得分:0)

您实际上必须将刷新表函数连接到SLOT( )

connect( edit_dialog, SIGNAL( finished(int) ), this, SLOT( refresh_table() ) );

除此之外,你的方法似乎没有任何问题。

您还可以创建自己的信号并将其连接到refresh_table()函数,例如使用该对话框中“Ok”,“Cancel”按钮的单击事件并调用

emit ownSignal( );

在其中。