我遇到了关于Qt的信号和插槽机制的问题。问题的核心在于:
我的申请包括两个班级:
MainGUI :此类具有应用程序的所有核心功能,并且有一些变量可存储与应用程序相关的值。
偏好设置:此类用于绘制和显示“设置”面板,并具有用于更新MainGUI中变量的行编辑字段(使用信号槽机制)
目前,我已将它们连接如下:
Preferences *Pref;
MainGUI *M;
.
.
.
connect(Pref, SIGNAL(pref_varAChanged(QString)), M, SLOT(setVarA(QString)));
connect(Pref, SIGNAL(pref_varBChanged(QString)), M, SLOT(setVarB(QString)));
connect(Pref, SIGNAL(pref_varCChanged(QString)), M, SLOT(setVarC(QString)));
.
.
.
但是,这一部分的作用是,即使我没有点击'APPLY'按钮(或等效的ACCEPT按钮......),变量也会更新变量。
请帮助我实现这个功能,只有当点击一个按钮,比如btn_accept时才会更新值A,B,C ......
PS:我知道这似乎是一个非常简单的问题,而且应该只有几行,但我一直在努力解决它并且每次都在撞墙。如果有人能指出我正确的方向,我会很感激
答案 0 :(得分:0)
好吧,似乎我已经找到了问题所在。 只需在单击ACCEPT按钮时发出'variableChanged'信号即可。这将更新MainGUI类中的变量。
似乎我找到了解决方案(阅读我的评论),但我误读了我的程序给出的输出,因此我没有意识到我已经解决了问题,直到很久以后。
谢谢大家的意见。对不起,这真是浪费时间。
此致
苛刻