用于对象之间数据交换的qt c ++信号槽连接

时间:2016-04-28 10:31:25

标签: c++ qt object signals-slots data-exchange

我遇到了以下问题:

我有一个名为PBVars的QWidget,其中包含许多由读取例程填充的行编辑。现在我想让用户有机会编辑一些字段,而不必删除所有条目。为此,我想打开一个新的对话框(名为EGG)并将所有数据复制到EGG中。现在用户可以更改数据,单击“SaveValuesToGUI”并将值保存回PBVars。这可能是个主意。

我设法从PBVars读取所有数据 - >蛋。但我坚持用EGG创建一个信号槽连接 - > PBVars。

PBVars.h:

...    
EGG *   egg ;

PBVars.cpp:

PBVars::PBVars(QWidget *parent) :
Tab(parent), ui(new Ui::PBVars)
{
 ....      
 egg = new EGG();
 }

  void PBVars::on_but_EditGeometry_clicked()
  {  ...
     // fill Values_from_PBVars here
     egg->show();
     egg->setLneEdits(Values_from_PBVars);
   }

我在哪里以及如何编写连接。 我认为应该有点像

  connect(  egg ???, SIGNAL(on_pb_sendValuesToPropBasic_clicked()), 
        this, SLOT(write_GGE_ToPBVars(qsl) ));

其中qsl是具有编辑的egg值的Stringlist。

有人可以帮帮我吗?谢谢!!

1 个答案:

答案 0 :(得分:3)

如果您希望连接传输数据,则必须在信号和插槽中包含匹配的参数:

void someSignal(int)
...
void someSlot(int i) { ...use i here... }

当您发出信号emit someSignal(someInt)时指定实际参数。