0
我有一個Qt(4.7.4)應用程序,它是其他應用程序的圖形終端。 在QML中,我用(named)控件定義了Views。 在C++中,我接收來自應用程序的命令,這些命令請求顯示包含我的控件的指定值的視圖。當命令來臨時,我使用類似於C++到QML - 設置屬性
myView = LoadTheNewViewIntoLoader(viewName);
QObject* ctrl = myView->findChild<QObject*>(ctrlName);
if(ctrl)
{
ctrl->setProperty("caption", newCaption);
}
更新控制值(即更改文本,圖像或其他)。
問題:這樣的操作有多快?或者:我如何確定所有屬性都已應用於控件?
問題是,在C++中,我爲加載視圖和設置所有屬性的操作創建了一個信號量,但是當在壓力測試期間有很多命令來臨時,我感覺這些值沒有足夠的時間從C++傳播到QML,當我執行下一個命令時,以前的操作仍在執行。在這種情況下,控件會從屏幕上消失一段時間,有時甚至會出現分割錯誤。對於具有大量控件的更復雜的屏幕,這更容易實現。
所以每次我找到當前視圖控制(有時甚至可能在一次ShowView操作中有100次),我應該連接到它的插槽然後發出信號?這將有助於我的表現/穩定性問題? – kappa