2014-03-04 22 views
0

我有我的工具欄上的兩個動作:saveaction和startaction如何將一個插槽內創建的文件從一個獨立的插槽發送到另一個插槽?

saveaction is connected to save() slot 
    startaction is connected to optimize() slot 

是內部優化創建的文件()。我想將文件保存在save()中。

由於當信號被觸發時被調用,它們(槽)應該是獨立的。 所以我有,

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

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

當我推工具欄(saveaction)savebutton。

void Mainwindow::save() 
{ 
    //here I want actually get file and save 
    get = thefile 
    saveit(); 
} 

我想我不能叫保存()內優化(),因爲它被稱爲每次優化()被調用,但我要的是每當saveaction被觸發,應該叫。 任何幫助表示讚賞。

+0

爲什麼不在優化()中調用this-> save()? – ariwez

+0

因爲有兩種不同的行爲。我想要保存文件調用save(),而不是每次開始優化()。 – amol01

回答

0

插槽是正常的方法,所以最簡單的就是把它稱爲:

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

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

如果你想要更多的東西異國情調,你可以一個信號連接到save()插槽,併發出信號。


添加到您的評論的唯一的事情是提取常見功能集成到一個類(或功能),並調用它,當你需要它。

您的要求應該足夠清楚,以說明發生什麼時應該做什麼。沒有人可以告訴你你的應用程序應該如何表現。

+0

但是,在這種情況下調用optimize()時總是會調用save(),這是我不想要的。因爲插槽連接到兩個不同的信號。每當保存操作被觸發時,我都會保存,而不是每次優化。任何想法,我如何才能達到目標? – amol01

+1

Omg。首先創建一個正常的算法。不清楚你在問什麼。 –

+0

我編輯了我的問題。現在清楚我想要什麼嗎? – amol01