Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何将插槽内创建的文件从一个独立插槽发送到另一个插槽?_Qt_Signals Slots - Fatal编程技术网

Qt 如何将插槽内创建的文件从一个独立插槽发送到另一个插槽?

Qt 如何将插槽内创建的文件从一个独立插槽发送到另一个插槽?,qt,signals-slots,Qt,Signals Slots,我的工具栏上有两个操作:saveaction和startaction saveaction is connected to save() slot startaction is connected to optimize() slot 在optimize()中创建了一个文件。我想在save()中保存文件 由于在触发信号时有调用,因此它们(插槽)应该是独立的。 所以我有 void Mainwidnow::optimize() { //here a file is create

我的工具栏上有两个操作:saveaction和startaction

   saveaction is connected to save() slot
   startaction is connected to optimize() slot
在optimize()中创建了一个文件。我想在save()中保存文件

由于在触发信号时有调用,因此它们(插槽)应该是独立的。 所以我有

void Mainwidnow::optimize()
{
    //here a file is created

    // and I want to send this file to save()
}
当我按下工具栏上的Save按钮时(saveaction)

我想我不能在optimize()中调用save(),因为每次调用optimize()时都会调用save(),但我希望它应该在触发saveaction时调用。
谢谢你的帮助

插槽是正常的方法,因此最简单的方法就是调用它:

void Mainwidnow::optimize()
{
    //here a file is created

    // and I want to send this file to save()
    save();
}
如果您想要更奇特的东西,可以将信号连接到
save()
插槽,然后发出信号


添加到注释中的唯一一件事是将公共功能提取到类(或函数)中,并在需要时调用它


您的需求应该足够清晰,能够说明什么时候应该发生。没有人可以告诉您应用程序应该如何运行。

为什么不在optimize()中调用此->save()?因为有两个不同的操作连接在一起。我想在任何时候保存文件并调用save(),而不是每次启动optimize()。但在本例中调用optimize()时都会调用save(),我不想这样。因为插槽连接到两个不同的信号。我希望在触发保存操作时保存,而不是在优化时保存。你知道我怎样才能达到目标吗?天哪。首先创建一个普通算法。不清楚你在问什么。我已经编辑了我的问题。现在清楚我想要什么了吗?那么你能告诉我你不明白什么吗?@user3185491发布一个真实的例子,说明你需要什么。你发布的甚至不是伪代码
void Mainwidnow::optimize()
{
    //here a file is created

    // and I want to send this file to save()
    save();
}