2016-11-25 116 views
1

我在上週第二次發生了問題。它似乎隨機發生。我改變了QML文件中的內容,保存它,運行應用程序,並看到我的更改沒有生效。我重新運行應用程序,但它仍然沒有生效。什麼時候對QML文件所做的更改不生效?

第一次發生這種情況後,我做了一些git的東西(按此順序:git stash save,回滾到舊版本,回到最新版本,git stash pop),它自行修復。第二次我沒有這樣做,但從Qt Creator菜單運行qmake並修復了它。

問題的原因是什麼?

我正在使用Qt Creator 4.1.0。

+0

Qt已經有這個問題,只要我已經使用了它,這已經差不多7年了,甚至在QML之前,你不得不偶爾清理和重建所有的東西,以便反映出變化。不知道需要多長時間來修復它... – dtech

+0

您是否正在從資源中加載QML文件?如果是的話,你重建? 一般而言,我只是在開發過程中使用直接文件訪問,因爲這允許在應用程序運行時甚至可以重新加載 –

+0

@KevinKrammer:從資源加載,是的。 「運行」命令通常會在發生更改時自動重建我的項目,因此我沒有手動重建,而是假設創作者將爲我執行此操作。 –

回答

2

斯蒂芬我已經看到這種情況發生,從我之前已經閱讀是一個知道是不是BUG的詳細信息,可以發現:

https://bugreports.qt.io/browse/QTCREATORBUG-1627

的事情是,它似乎qtcreator是無法檢測到更改qlm/qrc文件被更改,所以makefile不會被更新,因爲qmake沒有運行。

似乎他們不會被解決的bug,它已經有好幾年了,qtcreator的解決方法是手動運行qmake並重建之後。

+0

對於qml文件的更改,僅運行qmake就足夠了。我懷疑它是同一類型的錯誤,它需要每隔一段時間清理和重建所有的C++代碼。 – dtech

+0

我同意但是非常討厭這種情況發生的事實,好像它不可預測UI開發是一個問題。因此,我將嘗試編譯它發生的情況列表,並將分享回去:),所以即使它手動我們也可以知道qmake需要運行的所有情況:) – Kanekotic

+0

qmake通常不需要除非項目設置中的內容改變,否則運行。根據構建系統,例如make,生成的文件應該具有所有必要的更新規則,並且構建工具應該檢測更改以及要運行的必需構建鏈。因此,這取決於正在使用哪種工具進行構建以及它如何檢測更改 –

1

我只是再次遇到這個問題,這次儘管在每次運行之前努力運行qmake。

我想我找出了這次是什麼原因造成的。這是我使用駐留在「應用程序輸出」窗格工具欄中的小型運行按鈕(實際稱爲「重新運行此運行配置」)。看起來像這個按鈕具有運行而無需重建的奸詐財產。

解決方法是使用Ctrl + R或等效地沿着窗口左側的垂直工具欄中的大運行按鈕。


另一次問題不會消失,直到我刪除myproject.pro.user文件。

相關問題