我在ubuntu下使用Qdesigner和C++ 17進行非常簡單的編程也非常具體。 我的GUI和我的問題的目標詳細如下。
AIMS:
我需要標記幾個圖像數據集。 輸入的算法給了我三個輸出存儲在四個文件夾,然後我將diplay從輸入數據集側的每個圖像與三個相應的輸出數據的每一個到另一邊,並finaly採取有關結果的質量布爾判定的算法。 因爲我申請幾個數據集我想,當我開始我的項目來選擇每一個輸入和三個輸出文件夾這個算法。
問題:
我做了主窗口中我加載每個圖像,並採取了決定。 我在約束情況下評估它的效果。 我爲了實現開放項目的目標,我做了第二個UI,在那裏我開放了projet使用的外觀。 我在主窗口外的環境中評估第二個UI,它可以很好地工作。 所以我在slot方法中調用這個ui,但是在我調用菜單時並沒有發生任何事情。 多虧了std::cout
比如我可以檢查口法,當我點擊菜單或使用快捷鍵但沒有發生被調用。
下面是由QMenu
對象稱爲槽方法。
void main_gui::on_New_Project_triggered()
{
std::cout<<"NEW PROJECT "<<std::endl;
new_project3 np(this,this);
// new_project3 np(this,this->parent());
np.show();
np.raise();
np.activateWindow();
}
的new_project3類的構造函數的簽名是:
new_project3(main_gui* main_window, QWidget *parent);
對於第一個參數我與new_project3
類共享main_gui
例如爲了初始化幾個QStringList
沒有副本。
在此先感謝您的幫助。
EDIT
SOLUTION:
從類QWidget
繼承的類new_project3
。 出於某種原因,我不知道我沒有到達,使從QMainWindows
繼承類的內部工作new_project3
任何實例。 但是我修改的new_project3
繼承,以從類QDialog
繼承,然後將下面的代碼工作得很好:
void main_gui::on_New_Project_triggered()
{
std::cout<<"NEW PROJECT "<<std::endl;
new_project3 np(this,this);
np.exec();
}
已經解決我的問題。 我想知道什麼是寫在exec()
是解決我的問題。 但是,這將是另一個問題。
這就是我沒有看到任何東西的原因。 非常感謝您的解釋。 現在看來很清楚,與用戶的任何交互都必須從QDialog繼承。 –