在 Qt 中关闭子对话框 window 时调用函数
Call function when child dialog window is closed in Qt
尝试多种组合后,当另一个对话框关闭时,我无法让 Qt 在我的 window 主对话框中调用函数。
我查看并尝试了一些信号和插槽的操作,但无济于事:
QObject::connect( edit_dialog, SIGNAL( finished(int) ), this, refresh_table() );
简而言之,我有一个 table 可以显示来自自定义容器的数据。 edit_dialog 允许编辑值并通过一组外部函数(它们有效)将更改直接发送到数据库。但是一旦该对话框关闭,我想让 table 重新加载来自从数据库中提取它的容器的更新数据。
Db->容器->GUI table
我知道 Qt 有用于 read/write 数据库的本地库,但这对我的目的没有好处。我需要一种方法来自动调用 refresh_table()
函数,我曾尝试将其放入 'public slots' 中,但没有成功。
您实际上必须将刷新 table 函数连接到 SLOT( )
connect( edit_dialog, SIGNAL( finished(int) ), this, SLOT( refresh_table() ) );
除此之外,您的方法似乎没有任何问题。
您还可以创建自己的信号并将其连接到 refresh_table() 函数,例如使用该对话框中 "Ok" 和 "Cancel" 按钮的单击事件并打电话
emit ownSignal( );
其中。
尝试多种组合后,当另一个对话框关闭时,我无法让 Qt 在我的 window 主对话框中调用函数。
我查看并尝试了一些信号和插槽的操作,但无济于事:
QObject::connect( edit_dialog, SIGNAL( finished(int) ), this, refresh_table() );
简而言之,我有一个 table 可以显示来自自定义容器的数据。 edit_dialog 允许编辑值并通过一组外部函数(它们有效)将更改直接发送到数据库。但是一旦该对话框关闭,我想让 table 重新加载来自从数据库中提取它的容器的更新数据。
Db->容器->GUI table
我知道 Qt 有用于 read/write 数据库的本地库,但这对我的目的没有好处。我需要一种方法来自动调用 refresh_table()
函数,我曾尝试将其放入 'public slots' 中,但没有成功。
您实际上必须将刷新 table 函数连接到 SLOT( )
connect( edit_dialog, SIGNAL( finished(int) ), this, SLOT( refresh_table() ) );
除此之外,您的方法似乎没有任何问题。
您还可以创建自己的信号并将其连接到 refresh_table() 函数,例如使用该对话框中 "Ok" 和 "Cancel" 按钮的单击事件并打电话
emit ownSignal( );
其中。